【发布时间】:2019-03-02 18:20:19
【问题描述】:
我怎样才能正确地做到这一点?
因为这不起作用。
我有一个null 结果总是class SomeClass<T>()
当我尝试做SomeClass<Int> 或类似的事情时,我得到一个空值,因为我不知道如何正确获取Generic 的类型。
我已经尝试在类中创建字段,但我想避免在此类中创建字段
@Suppress("UNCHECKED_CAST")
fun <T : Any> SomeClass<T>.defaultSerializer(): KSerializer<T>? = when (this) {
String::class -> StringSerializer
Char::class -> CharSerializer
Double::class -> DoubleSerializer
Float::class -> FloatSerializer
Long::class -> LongSerializer
Int::class -> IntSerializer
Short::class -> ShortSerializer
Byte::class -> ByteSerializer
Boolean::class -> BooleanSerializer
Unit::class -> UnitSerializer
else -> null
} as KSerializer<T>?
【问题讨论】:
-
您可以为您的问题添加MVCE 吗?理想情况下,以Kotlin playground 为例