如何表达`Class <?扩展Any>`

jin*_*ngx 6 kotlin

我想写这样的东西:

var classList = ArrayList<Class<Any>>()
init {
    classList.add(ClassA::class.java)
    classList.add(ClassB::class.java)
}
Run Code Online (Sandbox Code Playgroud)

这让我错误如下:

Type inference failed. Expected type mismatch: inferred type is Class<ClassA> but Class<Any> was expected
Run Code Online (Sandbox Code Playgroud)

我可以通过进行显式转换来消除错误:

domainClasses.add(NameIdMapping::class.java as Class<Any>)
Run Code Online (Sandbox Code Playgroud)

这让我得到了一个"未经检查的演员"警告.这是我能做的最好的吗?如何干净利落地做到这一点?

hot*_*key 9

使用out-projection : ArrayList<Class<out Any>>,这大致相当于Java ? extends通配符.

请参阅:语言参考中的差异.