就像我有一个kotlin函数:
object KotlinFunc {
@JvmStatic
fun create(mycls: KClass<*>) {...}
}
Run Code Online (Sandbox Code Playgroud)
我想在Java代码中调用此函数,但这不起作用:
public void javaFunc() {
KotlinFunc.create(MyClass.class)
}
Run Code Online (Sandbox Code Playgroud) 我有一个 kotlin 对象和一个 java 类,如:
KotlinObject.kt
object KotlinObject{
....
}
Run Code Online (Sandbox Code Playgroud)
JavaClass.java
class JavaClass {
...
}
Run Code Online (Sandbox Code Playgroud)
和一个 kotlin 函数来检查:
fun foo(cls: Class<*>): Any {
if (cls is kotlin's object) { //how to do this?
return ? //wanna return object's instance
} else {
return cls.newInstance()
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将 kotlin 对象或 java 类传递给这个函数:
foo(KotlinObject::class.java)
foo(JavaClass::class.java)
Run Code Online (Sandbox Code Playgroud)
那么是否有可能分辨出哪个是 kotlin 的对象?