首页 文章

从Kotlin访问Integer.class

提问于
浏览
9

我有一个接受 Class 参数的Java方法 . 我需要传递 Integer.class ,但是来自Kotlin代码 . 我尝试了 Int::class.java ,但这不起作用,因为 int.class 被传递给函数 . 我的问题是,如何从Kotlin访问 Integer.class .

Java

void foo(Class clazz);

Kotlin

foo(Int::class.java) // does not work, int.class gets passed to foo

1 回答

  • 14

    您必须使用KClass#javaObjectType来获取Kotlin中的包装类型类:

    返回与给定KClass实例对应的Java Class实例 . 在原始类型的情况下,它返回相应的包装类 .

    例如:

    //                  v--- java.lang.Integer
    println(Int::class.javaObjectType)
    
    //                  v--- int
    println(Int::class.java)
    

相关问题