Подтвердить что ты не робот

Использовать значение Enum без использования Enum-classname

Я использую статический enum в интерфейсе и хочу использовать его в расширяющемся классе.

У меня есть следующие интерфейсы:

public interface StateSupport {
    public static enum State {
        NEW,
        UNCHANGED,
        UPDATED;
    }
}

и

public interface Support extends StateSupport  {
    public void do(Context arg0);
}

и, наконец, класс

public class MyClassUtil implements Support {
    public void do(Context arg0){ 
        MyClass obj = new MyClass(NEW);
    }

}

Дело в том, что я не хочу писать "State.NEW", просто "NEW": -)

Итак, как это сделать, не используя имя перечисления. Есть ли вообще способ?

4b9b3361

Ответ 1

Вы можете использовать статический импорт:

import static com.yourpackage.StateSupport.State.NEW;
import static com.yourpackage.StateSupport.State.UNCHANGED;
import static com.yourpackage.StateSupport.State.UPDATED;

или короче (обескуражен):

import static com.yourpackage.StateSupport.State.*;