如何从 Kotlin 中的 Java 枚举获取名称

Ore*_*est 3 java kotlin

我有一个用 Java 和 Kotlin 语言编写的项目,最近我遇到了下一个问题。

假设我们有MyMonth枚举:

public enum MyMonth {
    JAN("January"),
    FEB("February");

    private final String name;

    MyMonth(final String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在 Kotlin 中,当我们打印月份名称时:

fun main() {
    val month = MyMonth.JAN
    println(month.name)
}
Run Code Online (Sandbox Code Playgroud)

我们得到:

JAN

这是文档中描述的内容https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/name.html,但实际上名称应该是January

有没有办法在 Kotlin 中获取 Java 枚举中指定的名称?

UPD:我的 Kotlin 版本是1.3.30-release-170

UPD2:IDEA 甚至向我显示名称来自getName()Java 中定义的方法: 在此输入图像描述

UPD3:当我们明确使用.getName()它时,它可以工作,但看起来有点奇怪

Min*_*inn 5

您可以直接调用 getter,而不是使用属性语法:

fun main() {
    val name = MyMonth.JAN.getName()
    println(name)
}
Run Code Online (Sandbox Code Playgroud)