УТОЧНЕНИЕ: синтаксис свойства == val s = supportFragmentManager
в отличие от val s = getSupportFragmentManager()
Если я пишу интерфейс для класса Activity и хочу выставить свойство при сохранении синтаксиса свойства, как мне это сделать? сделать это?
Создать класс, наследующий AppCompatActivity и реализующий следующий интерфейс.
interface MyInterface {
fun getSupportFragmentManager: FragmentManager // Option 1 Boo!
val supportFragmentManager: FragmentManager // Option 2 Yey!
}
Вариант 1 будет работать просто отлично. MyActivity уже содержит функцию getSupportFragmentManager (), поэтому мне не нужно ее реализовывать.
Вариант 2 предложит мне реализовать отсутствующее свойство, и в результате я получу следующее
class MyActivity: AppCompatActivity(), MyInterface {
override val supportFragmentManager: FragmentManager
get() = TODO("Not yet implemented")
}
Это даст мне ошибку, так как уже есть функция с таким же подпись в классе.
Accidental override: The following declarations have the same JVM signature (getSupportFragmentManager()Landroidx/fragment/app/FragmentManager;):
fun <get-supportFragmentManager>(): FragmentManager defined in com.my.project.MyActivity
fun getSupportFragmentManager(): FragmentManager defined in com.my.project.MyActivity
Какие-либо идентификаторы того, как сохранить синтаксис свойств Kotlins во всех интерфейсах?