5
有没有办法在没有反射的情况下在Kotlin中制作像这样的作品?Enum.valueOf在Kotlin
inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?): T? {
return java.lang.Enum.valueOf(T::class.java, type)
}
下面的例子不编译由于:
类型参数中
inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: kotlin.String?): T?
开往T是不满意:推断类型TestEnum?
不是的一个亚型kotlin.Enum<TestEnum?>
enum class TestEnum
fun main() {
val value: TestEnum? = safeValueOf("test")
}
如果明确指定类型的参数值,你的函数的工作原理:'VAL value = safeValueOf(“test”)' –
yole
为什么不使用['valueOf']的Kotlin实现(https://kotlinlang.org/docs/reference/enum-classes.html#working-with-enum-constants) ? – soon
@yole谢谢,就是这样。你介意发布这个答案吗? – AndroidEx