Class <?的语法是什么?在kotlin中扩展class_name>?
问题描述:
我试图让接受来自Word_Class继承任何类变量的ArrayList,但它不工作:Class <?的语法是什么?在kotlin中扩展class_name>?
var lst = ArrayList<Class<Word_Class>>();
lst.add(Class<Noun_Class>);
我要寻找的语法<类?在kotlin中扩展class_name>
答
您可以在Kotlin中使用out type projection。它相当于在Java中? extends T
,例如:
// v--- out type projection
var lst = ArrayList<Class<out Word_Class>>()
为了得到你应该使用KClass#java
一个Java类,例如:
// v--- get a KClass instance
lst.add(Noun_Class::class.java)
// ^--- get java.lang.Class instance
由于它的工作 – user8459720
@ user8459720不是。很高兴帮助你。 –