我有一个接受Class
参数的Java方法.我需要传递Integer.class
给它,但是来自Kotlin代码.我试过Int::class.java
,但这不起作用,因为int.class
传递给函数.我的问题是,我如何Integer.class
从Kotlin 访问.
Java的
void foo(Class clazz);
Run Code Online (Sandbox Code Playgroud)
科特林
foo(Int::class.java) // does not work, int.class gets passed to foo
Run Code Online (Sandbox Code Playgroud)
hol*_*ava 19
您必须使用KClass#javaObjectType来获取Kotlin中的包装类型类:
返回
Class
与给定KClass
实例对应的Java 实例.在原始类型的情况下,它返回相应的包装类.
例如:
// v--- java.lang.Integer
println(Int::class.javaObjectType)
// v--- int
println(Int::class.java)
Run Code Online (Sandbox Code Playgroud)