Kotlin: наследовать от вложенного Java-класса - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть эти классы Java в файле .java :

public class BaseOuter
{
    public class BaseInner
    {
    }
}

И у меня есть эти классы Kotlin в файле .kt :

class DerivedOuter : BaseOuter()
{
    class DerivedInner : BaseOuter.BaseInner()
    {
    }
}

Этот код Kotlin в Android Studio выдает ошибку «Неразрешенная ссылка: BaseInner».Поэтому я могу наследовать от класса BaseOuter, но наследование от Java BaseOuter.BaseInner не является синтаксически правильным (но если я пытаюсь сделать то же самое с наследованием из классов Kotlin, я не получаю ошибок).

Почему-то я не могу Googleтот же пример или вопрос.

1 Ответ

0 голосов
/ 15 ноября 2018

Эквивалентом нестатического вложенного класса Java в Kotlin является внутренний класс.

Чтобы код работал, вам нужно использовать ключевое слово inner:

class DerivedOuter() : BaseOuter() {
    inner class DerivedInner : BaseOuter.BaseInner() {
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...