hip*_*cer 4 case-sensitive kotlin
Kotlin 语言规范声明标识符区分大小写,但由于生成的 getter/setter 显然不区分大小写,因此以下内容会产生编译器错误消息。
var a=10; var A=20
Clash.kt:1:1: error: platform declaration clash: The following declarations have the same JVM signature (getA()I):
fun <get-A>(): Int defined in root package
fun <get-a>(): Int defined in root package
var a=10
^
Run Code Online (Sandbox Code Playgroud)
我明白发生了什么,但这看起来是正确的行为吗?有没有解决的办法?
这与编译器如何创建 getter 和 setter 以匹配 Java Beans 标准有关。在本例中,getter 和 setter 都被命名为getA()and ,setA(...)因为它尝试使用字段的初始大写版本。但是,如果这些字段被命名为aaand AA,那么您将拥有getAa()和getAA(),并且不会发生名称冲突。
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |