不是Kotlin的偶然覆盖

时间:2017-09-11 09:17:48

标签: interface 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

1 个答案:

答案 0 :(得分:0)

你不能告诉Kotlin编译器接受这种&#34;意外覆盖的风险&#34;因为在字节码级别上会有冲突的构造。您也不能使用@JvmName来修改字节码中生成的字段名称,因为它不适用于委托,而懒惰是委托。