首先,Manager
(Kotlin 类)继承自JavaPlugin
(Java 类)。这个 JavaPlugin 类包含一个 getter 方法getPlugin(Class<T>)
。
经理类:
class Manager : JavaPlugin() {
companion object {
[more code...]
lateinit var plugin: Manager
private set
}
[more code...]
}
现在回到我想调用的任何其他 Java 类(我的项目混合了两种语言)Manager.getPlugin()
,但在 Java 中仍然只有JavaPlugin
类中的方法,它是被继承的。在 Kotlin 文件中,我能够检索插件变量,但在 Java 文件中,我无法弄清楚这怎么可能。
我知道我Manager.Companion.getPlugin()
现在可以使用,但我不想更改我的旧 Java 代码(其中包含旧的静态Manager.getPlugin()
调用)。
我在这里对伴生对象是不是错了,应该使用不同的东西来用静态吸气剂模拟我的旧静态变量?(我读到您可以将变量放在类之外,但我不知道如何在名称下访问这些变量Manager
(它仅适用于ManagerKt
)。)
我希望有人对这个问题有一个更好的标题并对其进行编辑。