小编SoB*_*ich的帖子

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

假设我们有枚举

enum class Status {
    OPEN, CLOSED
}

enum class Weekday {
    WORKDAY, DAYOFF
}
Run Code Online (Sandbox Code Playgroud)

有一个 Java 类

public KotlinInvoker {
    public methodWithKotlinEnumAsParameter_namely_AppendWorkingStatusString( ? kotlinEnum) {
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

目标是直接将任何 jave / kotlin 枚举传递给那种函数,就像 Java 一样

    <E extends java.lang.Enum<E>>
    methodAcceptingEnumAsParameter(E enum) {
    ...
    return result + ' ' + enum.toString();
    }
Run Code Online (Sandbox Code Playgroud)

所以你可以将任何枚举传递给它。应该是什么方法签名才能很好地与 kotlin 枚举一起使用,并且根据官方 kotlin 文档将其映射到 java 枚举?

java enums enumset kotlin

3
推荐指数
1
解决办法
3628
查看次数

标签 统计

enums ×1

enumset ×1

java ×1

kotlin ×1