Почему эта собственность класса Kotlin не является публичной? - PullRequest
1 голос
/ 11 марта 2019

У меня есть приложение, которое регулярно использует классы, написанные на Kotlin, к которым обращаются другие классы и их методы, написанные на Java.

У меня был следующий класс в Java:

public class MyDataClass {
    public String color;
    public String action;
}

Я решил перенести его в Котлин:

class MyDataClass {
    var color: String = ""
    var action: String = ""
}

После перекомпиляции я получаю следующее сообщение об ошибке:

/ myPath / MyApp.java: [93,20] цвет имеет частный доступ в myapp.command.MyDataClass

Я получаю похожую ошибку для action.

Согласно справке Kotlin , модификатор видимости по умолчанию для класса и свойств (и множества других) равен public.

Почему эти свойства рассматриваются как private?

1 Ответ

5 голосов
/ 11 марта 2019

Потому что это частное поле с открытым и открытым сеттерами.Вы не можете получить доступ к полям непосредственно в Kotlin, все это свойства.

См .: https://kotlinlang.org/docs/reference/properties.html#backing-fields

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...