是否可以
在 Kotlin 中创建一个类型参数 T 的泛型类,用于创建原语数组?我正在尝试创建一个可以由原始数组支持的列类。是否可以在 Kotlin 中普遍执行此操作?
class Foo<T>{n: Int) {
// How to make this int[]?
// Or IntArray?
val data = Array<T>(n)
}
我能想到的最接近的解决方案是将data
Any
类型设为lateinit var
并创建一个inline fun
,然后允许使用 reified
创建类型 T
的数组。
class Foo<T>(val n: Int) {
// How to make this int[]?
// Or IntArray?
lateinit var data: Any
inline fun <reified T> createNullArray() {
data = arrayOfNulls<T>(n)
}
}
编辑 - 如果您要这样做,那么为类请求泛型是没有意义的。
class Foo(val n: Int) {
lateinit var data: Any
inline fun <reified T> createNullArray() {
data = arrayOfNulls<T>(n)
}
}