Как переопределить унаследованный метод получения из класса java в объекте-компаньоне kotlin - PullRequest
0 голосов
/ 23 апреля 2020

Прежде всего, Manager (класс Kotlin) наследуется от JavaPlugin (класс Java). Этот класс JavaPlugin содержит метод получения 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 код (который содержит старый вызов stati c Manager.getPlugin()).

Я просто ошибаюсь здесь с объектом-компаньоном и должен что-то использовать отличается, чтобы подражать моей старой переменной stati c с помощью getti stati c? (Я читал, что вы можете разместить переменные вне класса, но я не понял, как получить доступ к этим переменным под именем Manager (это работало только с ManagerKt).)

1 Ответ

2 голосов
/ 23 апреля 2020

Аннотируйте ваш метод @JvmStatic.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...