我有一个应用程序经常使用Kotlin编写的类,这些类可以被其他类访问,并且用Java编写它们的方法。
我在Java中有以下类:
public class MyDataClass {
public String color;
public String action;
}
我决定把它搬到Kotlin:
class MyDataClass {
var color: String = ""
var action: String = ""
}
重新编译后,我现在收到以下错误消息:
/myPath/MyApp.java:[93,20]颜色在myapp.command.MyDataClass中有私人访问权限
我为action
得到了类似的错误。
根据Kotlin reference,类和属性(以及其他一些东西)的默认可见性修饰符是public
。
为什么这些属性被视为private
?
因为它是一个私人领域,拥有公共吸气剂和公共制定者。你不能直接在Kotlin访问字段,一切都是属性。
请参阅:https://kotlinlang.org/docs/reference/properties.html#backing-fields