kotlin 中定义了一个DataClass, 成员变量的名字一样,只是大小写不同:
data class Trade(
val t: Long,
val T: Long
)
编译时报错:
The following declarations have the same JVM signature
解决办法:
1.重命名避免冲突
data class Trade(
val tValue: Long,
val TValue: Long
)
- 如果想保持属性名称为t和T,可以使用@JvmField注解,指示Kotlin编译器生成Java字段而不是getter和setter方法,从而解决了方法签名冲突。然而,请注意使用此注解会将属性直接公开为公共字段,绕过封装。
data class Trade(
@JvmField val t: Long,
@JvmField val T: Long
)
网友评论