私は(外部のライブラリから)Javaクラスを持っています。今それは、私が理解したようJavaクラスに「静的な」拡張機能を追加することは可能ですか?例えば
A.foo() // This is call of extension function `foo` from Kotlin code
:
class A {} // This is Java class
私はKotlinに書かれた拡張機能を追加して、それを呼び出したいですKClass-es with companion objectの「静的な」拡張機能のみをサポートしているため、Kotlinでは不可能です。右?
後でKotlinでこのような機能を実装するのを防ぎたいとは思えません。右?
なぜこれが必要ですか?あなたはそれを呼び出すためにドット構文を持つクラス名を使う必要がないという点を除いて、同じ効果を得るためにパッケージ内の正規関数を定義することができます。いくつかのクラスで静的メソッドを見つけるためにリフレクションを使用することを期待している場合、それは別の話です... –
Kotlinはそのようなことを促進するので、 'foo(A)'の代わりに 'A.foo()'構文を使用したいクラスの機能を拡張するための構文(最初の段落[here](https://kotlinlang.org/docs/reference/extensions.html#extensions)を参照)。 –
右の拡張機能とプロパティは、クラスの*インスタンス*用です。ここにはインスタンスはなく、関数呼び出しだけです。 –