假设我们有枚举
enum class Status {
OPEN, CLOSED
}
enum class Weekday {
WORKDAY, DAYOFF
}
拥有一个 Java 类
public KotlinInvoker {
public methodWithKotlinEnumAsParameter_namely_AppendWorkingStatusString( ? kotlinEnum) {
...
}
}
目标是直接将任何 jave/kotlin 枚举传递给那种函数,就像 Java 你会有一个
<E extends java.lang.Enum<E>>
methodAcceptingEnumAsParameter(E enum) {
...
return result + ' ' + enum.toString();
}
所以你可以将任何枚举传递给它。
与 kotlin 枚举很好地配合使用的方法签名应该是什么,并且它应该根据官方 kotlin 文档映射到 java 枚举?
最佳答案
您的 Java 示例在 Kotlin 中运行良好:
enum class Status {
OPEN, CLOSED
}
enum class Weekday {
WORKDAY, DAYOFF
}
fun <E : Enum<E>> methodWithKotlinEnumAsParameter(arg : E)
{
println(arg.name)
}
现在,例如,如果您调用
methodWithKotlinEnumAsParameter(Weekday.DAYOFF)
,它将打印 DAYOFF 到控制台。
关于java - 如何将任何(仅在运行时已知)Kotlin 枚举作为参数传递给 Java 代码中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50627453/