作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试写这样的东西:
var classList = ArrayList<Class<Any>>()
init {
classList.add(ClassA::class.java)
classList.add(ClassB::class.java)
}
这让我犯了如下错误:
Type inference failed. Expected type mismatch: inferred type is Class<ClassA> but Class<Any> was expected
我可以通过显式转换来消除错误:
domainClasses.add(NameIdMapping::class.java as Class<Any>)
这给了我一个“未经检查的类型转换”警告。这是我能做的最好的吗?如何干净地做到这一点?
最佳答案
使用 out
-投影:ArrayList<Class<out Any>>
, 这几乎相当于 Java ? extends
通配符。
见:Variance在语言引用中。
关于kotlin - `Class<? extends Any>`如何表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102905/
我是一名优秀的程序员,十分优秀!