#java #oop #inner-classes
#java #ооп #внутренние классы
Вопрос:
Следующие классы определены в пакете по умолчанию.
Outer.java:
public class Outer {
public class Inner {
}
}
Main.java:
import Outer.Inner;
public class Main {
public static void main(String[] args) {
Outer.Inner inner = new Inner();
}
}
Я получаю:
Внутренний не может быть преобразован в тип
Я знаю, что можно создать экземпляр внутреннего класса из того же пакета.
Что не так и как это исправить?
Спасибо.
Ответ №1:
Ваш внутренний класс должен быть статическим (в противном случае вам понадобится внешний экземпляр для создания внутреннего экземпляра, а это плохой дизайн), и вы должны использовать
Outer.Inner inner = new Outer.Inner();
И нет, вы НИКОГДА не должны помещать классы в пакет по умолчанию.