4 つの値を持つ列挙型があり、列挙値を受け入れるメソッド シグネチャがあります。doSomething() の引数として渡されないすべての列挙値で何かを実行できるようにしたいと考えています。
public void doSomething(EnumThing thing){
EnumThing[] thingValues = EnumThing.values();
List<EnumThing> valuesNotPassedAsArg = new ArrayList<EnumThing>();
for(EnumThing th : thingValues){
valuesNotPassedAsArg.add(th);
}
valuesNotPassAsArg.remove(thing);
//here I would loop through all valuesNotPassAsArg and do something with them
}
public enum EnumThing{
SOMETHING, SOMETHINGELSE, ANOTHERTHING;
}
これを行うためのよりクリーンな方法はありますか?thingValues 配列からアイテムを取得するためのループが不要であるかのように感じます。