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

标签 java enums kotlin enumset

假设我们有枚举

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/

相关文章:

c - 枚举类型和从特定枚举类型创建的变量的用途是什么

java - Android Studio 给了我 BuildConfig 错误

java - Android If else 条件错误

java - Oracle 存储过程自动化

java - 加载一个实现另一个类的类 - Java

java - org.apache.commons.text 的依赖项是什么?

平台之间的 C 枚举大小不匹配有潜在危险

java - Swift 中的高级 Java 枚举

android - 拍照时 Intent 始终为空

android - Kotlin gradle.build ZipException 因为重复