Где определяется переменная supportFragmentManager?
Я использую Kotlin для разработки. Когда я добрался до раздела фрагментов официального руководства по Android, я наткнулся на supportFragmentManager. Которая доступна для использования в качестве переменной в Kotlin, тогда как в java мы можем вызвать ее эквивалентный методgetSupportFragmentManager()
.
Интересно, где supportFragmentManager
переменная определена, поскольку я не видел ничего похожего на объявление переменной с таким именем, однако щелчок по этой переменной привел меня к следующему методу внутри класса fragmentActivity.java.
/**
* Return the FragmentManager for interacting with fragments associated
* with this activity.
*/
public FragmentManager getSupportFragmentManager() {
return mFragments.getSupportFragmentManager();
}
Как этот метод стал доступен как переменная в Kotlin, тогда как в java мы можем получить доступ как обычный метод? Любая помощь будет оценена.
2 ответа
Собственно, в Котлине при звонке supportFragmentManager
это не переменная, любой метод Java содержит get
префикса (без аргумента) в методе в Kotlin он будет вызываться как переменная без get
слово
Методы, которые следуют соглашениям Java для геттеров и сеттеров (методы без аргументов с именами, начинающимися с get, и методы с одним аргументом с именами, начинающимися с set), представлены в Kotlin как свойства. Логические методы доступа (где имя получателя начинается с is, а имя установщика начинается с set) представлены как свойства, которые имеют то же имя, что и метод получения.
Подробнее здесь
Это что-то вроде метода получения и установки в Kotlin. Не нужно описыватьgetProperty()
а также setProperty()
метод доступа / обновления значения свойства.
Вы можете узнать больше о том, как это работает, на примере из этого вопроса / ответов.
Надеюсь, это вам поможет. Удачного кодирования..!