gpt4 book ai didi

kotlin - `Class`如何表达

转载 作者:IT老高 更新时间:2023-10-28 13:44:22 24 4
gpt4 key购买 nike

我正在尝试写这样的东西:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com