Kotlin:修饰符“覆盖”不适用于“初始化程序”

时间:2018-08-06 16:28:37

标签: java intellij-idea kotlin migration

我正在一个Java项目中工作,负责将某些类迁移到Kotlin。有一个具有抽象方法的Java抽象类:

protected abstract boolean init(params) {
    ...
}

并且该类正在公共类中扩展,所以我重写了这样的方法:

@Override
protected boolean init(params) {
    ...
}

因此,当尝试将此公共课程迁移到Kotlin时,

override protected fun init(params): Boolean{}

我收到错误 Kotlin:修饰符'override'不适用于'initializer',因为该方法的名称​​ init 是Kotlin中的关键字。我知道解决此问题的一种方法是更改​​抽象类中方法的名称(例如,从init到Initialize),但是它在项目中有大量用法,因此我想知道是否有解决此问题的更好方法在花时间重构整个项目之前。

1 个答案:

答案 0 :(得分:-3)

请勿使用受保护的关键字。您可以在公共类中使用这种方法。

override fun init(): Boolean {
    ...
}