我有一个用 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()它时,它可以工作,但看起来有点奇怪
您可以直接调用 getter,而不是使用属性语法:
fun main() {
val name = MyMonth.JAN.getName()
println(name)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7260 次 |
| 最近记录: |