Подтвердить что ты не робот

Отсутствующий экземпляр типа MySuperClass <B> доступен из-за некоторого промежуточного конструктора

Я пытался использовать внутренний класс супер-типа, который использовал generics. И получил эту странную ошибку выше.

class MySuperClass<B> {
   class InnerClass {
   }

   MySuperClass(InnerClass... c) {
   }
}

В подклассе я попытался создать его экземпляр:

class MySubClass extends MySuperClass<String> {
   MySubClass() {
      super(new InnerClass(), new InnerClass());
   }
}

Компилятор меня смутил

No enclosing instance of type MySuperClass<B> is available due to some intermediate constructor

Почему?

4b9b3361

Ответ 1

Хех, и сам нашел ответ:

InnerClass не является статичным, поэтому экземпляр MySuperClass должен быть передан для этой ссылки $, но недоступен перед вызовом super()... просто делая статичность InnerClass решена моя проблема.