15

インターフェイスで静的列挙型を使用しており、それを拡張クラスで使用したいと考えています。

私は次のインターフェースを持っています:

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」だけです:-)

では、列挙名を使用せずにそれを行うにはどうすればよいでしょうか。まったく方法はありますか?

4

1 に答える 1

26

静的インポートを使用できます。

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.*;
于 2012-11-16T11:03:06.663 に答える