首先,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()
调用(。
我只是在这里对伴随对象错了,应该使用不同的东西来用静态getter模拟我的旧静态变量吗?(我读到您可以将变量放在类之外,但当时我不知道如何以名称Manager
访问这些变量(它只适用于ManagerKt
(。(
我希望有人能为这个问题找到一个更好的标题并对其进行编辑。
对方法@JvmStatic
进行注释。