Что означает имяКласса.new Класс();
Я знаю что new используется для создания объекта, но что происходит, когда пишут имяКласса.new Класс(); ?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
В принципе, тоже для для создания экземпляра, но уже внутренних не статичных классов. Пример:
public class Outer {
public class Inner {
public void foo() { ... }
}
}
Здесь класс Inner является внутренним для класса Outer. В итоге, например, чтобы вызвать метод foo у внутреннего класса, можно написать так:
Outer outer = new Outer();
outer.new Inner().foo();
или даже
new Outer().new Inner().foo();
Но в целом Class.new Class это создание экземпляра внутреннего класса "на лету".
А если внутренний класс статический, то в этом случае как его вызывать
Получается так:
public class Outer {
public static class Inner {
public void foo() {
System.out.println("Foo");
}
}
}
new Outer.Inner().foo();