以下Java代码的Kotlin等效项是什么?
class Test {
Class<? extends Number> types = new Class[] {
Integer.class, Long.class, Short.class, Byte.class, Float.class, Double.class
};
}
最佳答案
您可以使用out
关键字:
var types: Array<Class<out Number>> = arrayOf(
Integer::class.java,
Long::class.java,
Short::class.java,
Byte::class.java,
Float::class.java,
Double::class.java
)
out
修饰符用于指示协方差(类似于Java中的? extends T
)。 协方差-是将通用类型参数从类更改为其父级之一的功能,即将List<String>
分配给List<Any>
。
关于generics - 在Kotlin中,如何定义具有上限的泛型类型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54750771/