如何将任何(仅在运行时已知)Kotlin 枚举作为参数传递给 Java 代码中的方法?



>假设我们有枚举

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打印到控制台。

相关内容

  • 没有找到相关文章

最新更新