I've got an app that is regularly using classes written in Kotlin which are accessed by other classes and their methods written in Java.
I had the following class in Java:
public class MyDataClass {
public String color;
public String action;
}
I've decided to move it to Kotlin:
class MyDataClass {
var color: String = ""
var action: String = ""
}
Upon recompiling, I'm now getting the following error message:
/myPath/MyApp.java:[93,20] color has private access in myapp.command.MyDataClass
I get a similar error for action
.
Per the Kotlin reference, the default visibility modifier for class and properties (and a bunch of other things) is public
.
Why are these properties being treated as private
?
Because it's a private field with a public getter and a public setter. You cannot access fields directly in Kotlin, everything is properties.
Refer to: https://kotlinlang.org/docs/reference/properties.html#backing-fields
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With