kotlin如何获取泛型对象

在kotlin中,有以下代码

class Person<T> {

    companion object {
        val name = "HJM"
        val INSTANCE = Person<T>() // ???
    }

}
fun main(args: Array<String>) {
    println(Person.getInstance())
    println(Person.name)


}

请问???处这里如何获得这个Person对象

阅读 4.7k
1 个回答

这个是kotlin里面的伴生对象,类似于java中的静态成员,你上面的泛型在实例化的时候没有指定具体类型。

class Person<T> {

    val a = "i am a"

    companion object {
        val name = "HJM"
        val INSTANCE = Person<String>() // ???
    }
}

class B{

    fun test(){
        Person.INSTANCE.a
        Person<String>().a  /
    }
}

建议你反编译后看看实际对应的Java代码,方法如下:

Tools --> Kotlin --> Show Kotlin Bytecode

接下来 点击面板左上角的 Deecompile

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏