Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

Создание экземпляра внутреннего класса

#java


Вопрос по синтаксису Java. Я уже относительно давно пишу на этом языке. Но недавно
понял, что не знаю, как создать экземпляр внутреннего класса извне, если этот класс
нестатический. Например, у меня есть класс:
class Outer {
   Outer() {
   }

   ...

   class Inner {
     Inner() {
     }

     ...

   }    
}

Как из внешнего класса создать экземпляр класса Inner?    


Ответы

Ответ 1



Как известно, нестатичный внутренний класс должен быть связан с объектом класса-родителя. Если у вас есть такой объект, конструктор внутреннего класса вызывается следующим образом. Outer outer = new Outer(); Innter inner = outer.new Inner();

Ответ 2



Рабочий вариант, проверено в коде: Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); Либо в одну строку создаем 2 объекта: Outer.Inner inner = new Outer().new Inner(); Вариант предложенный Синицыным Артёмом на JDK8 у меня выдает ошибку!!!

Комментариев нет:

Отправить комментарий