У меня есть простое перечисление:
package reports.generation;
public enum ReportType {
CARD_EMISSION_SIMPLE,
CARD_EMISSION_WITH_STATUS
}
Которое я хочу использовать в классе другого пакета. Однако если я пытаюсь ссылаться на значение перечисления в виде ReportType.CARD_EMISSION_SIMPLE:
package reports.ui.service;
...
import reports.generation.ReportType;
public class BgrdService extends Service<String> {
class BgrdTask extends Task<String> {
@Override
protected String call() throws Exception {
try {
switch (reportType) {
case ReportType.CARD_EMISSION_SIMPLE:
System.out.println("CARD_EMISSION_SIMPLE");
break;
case ReportType.CARD_EMISSION_WITH_STATUS :
System.out.println("CARD_EMISSION_WITH_STATUS");
break;
}
...
} catch (Exception ex) {
...
}
}
}
}
Eclipse подчёркивает это значение красным и при наведении мыши выдаёт следующее предупреждение:
и при нажатии на ссылку "Replace with the unqualified enum constant 'CARD_EMISSION_SIMPLE'" заменяет значение ReportType.CARD_EMISSION_SIMPLE на CARD_EMISSION_SIMPLE:
Но при этом в импортах ничего не меняется, по-прежнему остаётся только
import reports.generation.ReportType;
Хотя в других местах, не в операторе case можно ссылаться на CARD_EMISSION_SIMPLE без ReportType. только с помощью статического импорта:
import static reports.generation.ReportType.CARD_EMISSION_SIMPLE;
...
switch (reportType) {
case CARD_EMISSION_SIMPLE:
System.out.println(CARD_EMISSION_SIMPLE);
break;
...
Почему в операторе case блока switch-case можно ссылаться на CARD_EMISSION_SIMPLE без ReportType. без статического импорта?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости