Tengo una aplicación que usa regularmente clases escritas en Kotlin a las que acceden otras clases y sus métodos escritos en Java.
Tuve la siguiente clase en Java:
public class MyDataClass { public String color; public String action; }He decidido moverlo a Kotlin:
class MyDataClass { var color: String = "" var action: String = "" }Al volver a compilar, ahora recibo el siguiente mensaje de error:
/myPath/MyApp.java:[93,20] color tiene acceso privado en myapp.command.MyDataClass
Recibo un error similar para la action .
Según lareferencia de Kotlin , el modificador de visibilidad predeterminado para la clase y las propiedades (y muchas otras cosas) es public .
¿Por qué estas propiedades se tratan como private ?
Porque es un campo privado con un getter público y un setter público. No puede acceder a los campos directamente en Kotlin, todo son propiedades.
Consulte: https://kotlinlang.org/docs/reference/properties.html#backing-fields