如何在 kotlin companion object 中覆盖从 java class 继承的 getter

How to override inherited getter from java class in a kotlin companion object

首先,Manager(一个Kotlin class)继承自JavaPlugin(一个Java class)。 此 Java 插件 class 包含一个 getter 方法 getPlugin(Class<T>)

经理class:

class Manager : JavaPlugin() {

    companion object {
        [more code...]
        lateinit var plugin: Manager
            private set
    }

    [more code...]

}

现在回到任何其他 Java class(我的项目是两种语言的混合)我想调用 Manager.getPlugin(),但在 Java 中仍然存在只有 JavaPlugin class 中的方法被继承了。 在 Kotlin 文件中,我能够检索插件变量,但在 Java 文件中,我不知道这怎么可能。

我知道我现在可以使用 Manager.Companion.getPlugin(),但是 我不想更改旧的 Java 代码(其中包含旧的静态 Manager.getPlugin()呼唤)。

我只是在这里对同伴 object 有误,应该使用不同的东西来用静态 getter 模拟我的旧静态变量吗? (我读到你可以将变量放在 class 之外,但我不知道如何访问这些变量然后在名称 Manager 下(它只适用于 ManagerKt。)

我希望有人对这个问题有更好的标题并进行编辑。

注释你的方法@JvmStatic