gpt4 book ai didi

java - Kotlin 中的 Enum.valueOf

转载 作者:IT老高 更新时间:2023-10-28 13:32:19 30 4
gpt4 key购买 nike

有没有办法在没有反射的情况下在 Kotlin 中进行类似的工作?

inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?): T? {
return java.lang.Enum.valueOf(T::class.java, type)
}

以下示例无法编译,原因是:

Type parameter bound for T in inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: kotlin.String?): T? is not satisfied: inferred type TestEnum? is not a subtype of kotlin.Enum<TestEnum?>

enum class TestEnum

fun main() {
val value: TestEnum? = safeValueOf("test")
}

最佳答案

如果您明确指定类型参数值,您的函数将起作用:

val value = safeValueOf<TestEnum>("test")

原代码应该也可以工作,但由于类型推断实现中的错误而无法工作:https://youtrack.jetbrains.com/issue/KT-11218

关于java - Kotlin 中的 Enum.valueOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666815/

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