jdk версия: 1.8.0_241
Существует класс, расширяющий внутренний класс. Код следующий:
class WithInner {
class Inner {
}
}
public class ExtendInnerClass extends WithInner.Inner {
ExtendInnerClass(WithInner withInner) {
withInner.super();
}
}
Чтобы соединить объект класса InInner и объект класса Inner, мы должны использовать метод super () . Но когда я декомпилировал файл класса, я обнаружил кое-что интересное.
public class ExtendInnerClass extends Inner {
ExtendInnerClass(WithInner withInner) {
withInner.getClass();
super(withInner);
}
}
Я обнаружил, что компилятор не только использует метод super (), но также withInner.getClass () .
зачем он это делает?