Где определяется переменная supportFragmentManager? - PullRequest
4 голосов
/ 27 мая 2020

Я использую Kotlin для разработки. Когда я дошел до раздела с фрагментами официального Android учебника, я наткнулся на supportFragmentManager. Которая доступна для использования в качестве переменной в Kotlin, тогда как в java мы можем вызвать его эквивалентный метод getSupportFragmentManager().

Интересно, где определена переменная supportFragmentManager, поскольку я не видел ничего похожего на объявление переменной с таким именем, однако щелчок по этой переменной привел меня к следующему методу внутри fragmentActivity. java class.

/**
 * Return the FragmentManager for interacting with fragments associated
 * with this activity.
 */
public FragmentManager getSupportFragmentManager() {
    return mFragments.getSupportFragmentManager();
}

Каким образом этот метод стал доступен как переменная в Kotlin, тогда как в java мы можем обращаться как к обычному методу? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

4 голосов
/ 27 мая 2020

Фактически, в Kotlin, когда вы вызываете supportFragmentManager, это не переменная, Любой Java метод содержит префикс get (без аргументов), в методе Kotlin он будет вызываться как переменная без get word

Методы, которые соответствуют Java соглашениям для геттеров и сеттеров (методы без аргументов с именами, начинающимися с get и методы с одним аргументом с именами, начинающимися с set), представлены как свойства в Kotlin. Логические методы доступа (где имя получателя начинается с is, а имя установщика начинается с set) представлены как свойства, которые имеют то же имя, что и метод получения.

Подробнее о здесь

2 голосов
/ 27 мая 2020

Это что-то вроде метода получения и установки в Kotlin. Вам не нужно описывать методы getProperty() и setProperty() для доступа / обновления значения свойства.

Вы можете узнать больше о том, как это работает, на примере из этого вопрос / ответы .

Надеюсь, это вам поможет. Удачного кодирования ..!

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