我是Kotlin的新手,正在尝试创建这种Java情况:
protected String aVariable;
public setAVariable(String aValue){
aVariable = aValue;
}
如果我尝试使用其他修饰符指定设置器,则会出现错误。我也尝试过:
protected var aVariable: String? = null
fun setAVariable(value: String?){
aVariable = value
}
但是它告诉我,相同的方法已经存在,但使用了不同的修饰符(默认设置)
我可以只更改setter方法的名称,但我想避免这种情况。有什么办法可以做到吗?
答案 0 :(得分:2)
您可能想在kotlin参考文献中查找getters and setters。
您可以在其中看到如何替换或更改可见性,例如:
// public var with private setter:
var demo : String = ""
private set
现在关于您想要拥有公共二传手但受保护的getter的特定情况,您可能认为以下方法会起作用:
private var demo : String = ""
public set
但这不起作用。然后,科特林抱怨Setter visibility must be the same or less permissive than property visibility
。因此:使用Kotlin标准意味着不可能。当然,您可以使用可以公开访问的任何其他方法,并从那里设置适当的属性,例如:
private var demo : String = ""
fun overwriteDemo(s : String) {
demo = s
}