Я использую иерархию внутренних классов для представления некоторых данных в приложении, и я столкнулся с сообщением об ошибке, которое я просто не понимаю. Мой код можно свести к следующему минимальному примеру:
public class A {
public class B extends A {}
public class C extends B {}
}
Javac (и моя IDE, конечно) не может скомпилировать код со следующим сообщением об ошибке:
A.java:3: cannot reference this before supertype constructor has been called
public class C extends B {}
^
1 error
Я не писал это
нигде . Кодов не больше, чем указано выше, поэтому я предполагаю, что javac сгенерировал что-то, связанное с внутренним классом.
Я нашел другой способ представления моих данных, поэтому меня просто интересует хорошее объяснение, почему это не так. компилировать.