而不是Kotlin的意外覆盖
我有java界面
public interface LifecycleRegistryOwner extends LifecycleOwner { @Override LifecycleRegistry getLifecycle(); }
和实现这个接口的Kotlin类,刚刚才会超级好
val lifecycle by lazy { val result = LifecycleRegistry(this) result }
但编译器说这是一个意外覆盖。 有没有办法告诉它是由意向?
我目前的实施
class PartnerSettingsActivity :AppCompatActivity(),LifecycleRegistryOwner { private val registry = LifecycleRegistry(this) //<< hate this class-wide val override fun getLifecycle(): LifecycleRegistry = registry
您不能告诉Kotlin编译器接受这种“意外覆盖”的风险,因为在字节码级别上会存在冲突的结构。 既不能使用@JvmName来修改在字节码中生成的字段的名称,因为它不能与委托一起工作,懒惰是一个委托。