Избегайте повторенного импорта в Java: Наследовать импорт?

Существует ли способ "наследовать" импорт?

Пример:

Общее перечисление:

public enum Constant{ ONE, TWO, THREE }

Базовый класс с помощью этого перечисления:

public class Base {
    protected void register(Constant c, String t) {
      ...
    }
}

Класс Sub, нуждающийся в импорте для использования перечислимые удобные константы (без перечислимого имени):

import static Constant.*; // want to avoid this line!  
public Sub extends Base {
    public Sub() {
        register(TWO, "blabla"); // without import: Constant.TWO
    }
}

и другой класс с тем же импортом...

import static Constant.*; // want to avoid this line!
public AnotherSub extends Base {
    ...
}

Я мог использовать классические статические заключительные константы, но возможно существует способ использовать общее перечисление с тем же удобством.

13
задан deamon 11 January 2010 в 13:22
поделиться

3 ответа

Импорт - это просто помощь компилятору на поиск классов. Они активны для одного исходного файла и не имеют никакого отношения к механизмам ООП Java.

Итак, нет, вы не можете «наследовать» Импорт S

16
ответ дан 1 December 2019 в 22:23
поделиться

Нет, вы не можете наследовать импорт. Если вы хотите ссылаться на файл класса, не используя полностью квалифицированное имя, вы должны явно импортировать его.

Но в вашем примере было бы легко сказать

public Sub extends Base {
    public Sub() {
        register(Constant.TWO, "blabla"); // without import: Constant.TWO
    }
}
3
ответ дан 1 December 2019 в 22:23
поделиться

Если вы используете Eclipse, используйте «Организовать импорт» ( Ctrl + Shift + o ) Чтобы позволить IDE делает импорт для вас (или использовать завершение кода ( Ctrl + пространство )

3
ответ дан 1 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: