使用枚举值而不使用枚举类名

2022-09-03 12:53:58

我在接口中使用静态枚举,并希望在扩展类中使用它。

我有以下接口:

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”:-)

那么它如何在不使用枚举名称的情况下做到这一点。有没有办法?


答案 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.*;

答案 2

推荐