Kotlin重命名生成的Getter和Setter

时间:2017-06-07 20:55:00

标签: kotlin setter getter

有没有办法在Kotlin中重命名默认的getter和setter?我有一个名为snake_case的属性,但我仍然希望在camelCase中命名getter和setter。

我得到的最接近的是

private var property_name = Color.BLACK
private set
fun setPropertyName(c: Color) { property_name = c }
fun getPropertyName() = property_name

有没有办法在不隐藏getter和setter并定义新方法的情况下执行此操作?

2 个答案:

答案 0 :(得分:12)

如果您只想更改名称而不是功能,您还可以像下面那样更改注释的范围:

@get:JvmName("getPropertyName")
@set:JvmName("setPropertyName")
var property_name = Color.BLACK

答案 1 :(得分:6)

有关处理签名冲突的部分进行了描述:https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#handling-signature-clashes-with-jvmname

val x: Int
    @JvmName("getX_prop")
    get() = 15

所以@JvmName("getPropertyName") get应该有用。