Нет доступного экземпляра типа MySuperClass <B>из-за некоторого промежуточного конструктора - PullRequest
11 голосов
/ 09 октября 2011

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

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

Почему?

1 Ответ

18 голосов
/ 09 октября 2011

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

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

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