Kotlinには次のメソッドがあります。
inline fun <reified T> foo() {
}
これをJavaから次のように呼び出そうとすると:
myObject.foo();
またはこのように:
myObject.<SomeClass>foo();
次のエラーが発生します。
Java:foo()はMyClassでプライベートアクセスがあります
Javaからfoo
メソッドを呼び出すにはどうすればよいですか?
呼び出しサイト(この場合はinline
)で変換およびインライン化する必要があるため、Javaからの修正された型パラメーターを使用してKotlinT
関数を呼び出す方法はありません。各呼び出しサイトで実際の型に置き換える必要がありますが、inline
関数のコンパイラロジックはこれだけではありません)、Javaコンパイラは、予想通り、完全に認識していませんその。