Создать метод получения / установки, но без элемента поля - PullRequest
1 голос
/ 07 июня 2019

В Kotlin вы можете создать переменную, которая имеет и геттер, и сеттер:

var mRetrievingConnections: Boolean?

var retrievingConnections: Boolean?
    get() = mRetrievingConnections
    set(value) {
      mRetrievingConnections = value
    }

Но мне интересно, если нет способа сделать это, не требуя личного поля участника. Kotlin утверждает, что у него есть встроенные поля поддержки для сеттеров, но как получатель может получить доступ к этому полю поддержки. Я ищу что-то вроде этого (что не разрешено):

var retrievingConnections: Boolean?
    get() = field
    set(value) {
    }

Я нахожу это странным, потому что установщик может получить доступ к вспомогательному полю, поэтому, когда вы устанавливаете значение, оно автоматически сохраняется. Но как мне получить это значение в получателе?

1 Ответ

1 голос
/ 07 июня 2019

Исходя из моего комментария, это правильный код:

var retrievingConnections: Boolean? = null
    get() = field
    set(value) {
        field = value
    }

Обратите внимание, что этот код эквивалентен

var retrievingConnections: Boolean? = null

Так что это не добавляет никакой ценности, если вы не делаете что-то большее внутри get и / или set

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