Как я могу импортировать класс приложения в общий каталог - PullRequest
0 голосов
/ 29 января 2020

Это моя структура каталогов:

src
|-common
| |-AppManager.java
| |-DesignConstants.java
|-controller
|-view
|-Application.java

Я попытался импортировать класс "sr c .Application" в "sr c .common.AppManager". Но это не работает. Как я могу это сделать?

package common;

import view.MainPanelView;
import Application; // Error :: Class 'Application' is in the default package

public class AppManager {
    private static class Holder {
        public static final AppManager INSTANCE = new AppManager();
        public static final MainPanelView MAIN_PANEL_VIEW = new MainPanelView();
    } // Holder Inner Class

    public static AppManager getInstance() {
        return Holder.INSTANCE;
    } // getInstance()

    public MainPanelView getMainPanelView() {
        return Holder.MAIN_PANEL_VIEW;
    } // getMainPanelView()
} // AppManager Class

Ответы [ 2 ]

0 голосов
/ 29 января 2020

К сожалению, вы не можете импортировать классы, которых нет в пакете. Смотрите также: { ссылка }

Вам придется переместить Приложение. java в его собственный пакет (папку).

Например, создайте папку с именем main внутри папки sr c и выполните рефакторинг приложения. java, переместив ее в пакет main.

0 голосов
/ 29 января 2020

src - это не пакет, а исходная папка.

Это означает, что AppManager находится в пакете common, а не src.common (см. Объявление пакета: package common на вершине класса).

Однако класс Application находится в пакете по умолчанию (не указан пакет c).

Следовательно, он не имеет package объявление в его верхней части, и оно может использоваться только другими классами в пакете по умолчанию.

Рекомендуется создать пакет, содержащий все классы вашего проекта.

Например, вы можете использовать эта структура каталогов

src
|-yourrootpackagename
| |-common
| | |-AppManager.java
| | |-DesignConstants.java
| |-controller
| |-view
| |-Application.java

С этой структурой вы можете импортировать yourrootpackagename.Application из yourrootpackagename.common.AppManager.

Не забудьте изменить объявления пакетов существующих классов. Например, класс AppManager должен начинаться с:

package yourrootpackagename.common;

Кстати, рекомендуется создать пакет root, содержащий обратное доменное имя вашей организации и вашего проекта. name.

Например, для переполнения стека пакет будет выглядеть примерно так: com.stackoverflow.yourproject. Вы можете сделать это с обратным доменным именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...