如何使用Java中的具体化泛型来调用Kotlin方法?

Ada*_*old 21 java reification kotlin

我在Kotlin有以下方法:

inline fun <reified T> foo() {

}
Run Code Online (Sandbox Code Playgroud)

如果我尝试从Java调用这样:

myObject.foo();
Run Code Online (Sandbox Code Playgroud)

或者像这样:

myObject.<SomeClass>foo();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

java:foo()在MyClass中具有私有访问权限

如何foo从Java 调用该方法?

hot*_*key 26

没有办法inline用Java中的reified类型参数调用Kotlin 函数,因为它们必须在调用站点进行转换和内联(在您的情况下,T应该用每个调用站点的实际类型替换,但是inline函数的编译器逻辑比就这一点而言,Java编译器预计完全没有意识到这一点.

  • 非常感谢~ brb 一点一点地重构java代码,到kotlin (2认同)