Преобразование преобразует статический финал interfaceValue
в val
в companion
эквиваленте Котлина.К сожалению, конвертер не идеален и иногда все портит.Чтобы получить к нему доступ
import com.your.package.Experimenting.MyInteface.Companion.interfaceValue
class Experimenting {
internal var myImpl = MyImpl()
interface MyInteface {
companion object {
const val interfaceValue = 10
}
}
internal inner class MyImpl : MyInteface
internal fun testing() {
val getInterfaceValue = interfaceValue
}
}
делает свое дело.
также делает:
class Experimenting {
internal var myImpl = MyImpl()
interface MyInteface {
companion object {
val interfaceValue = 10
}
}
internal inner class MyImpl : MyInteface
internal fun testing() {
val getInterfaceValue = MyInteface.interfaceValue
}
}
Третий способ - скопировать значение interfaceValue
в реализациюкласс:
class Experimenting {
internal var myImpl = MyImpl()
interface MyInteface {
companion object {
const val interfaceValue = 10
}
}
internal inner class MyImpl : MyInteface{
val interfaceValue = MyInteface.interfaceValue
}
internal fun testing() {
val getInterfaceValue = myImpl.interfaceValue
}
}
По сути, вы обращаетесь к нему так же, как к статической переменной в Java.