我有一个具有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数组中获取项目的循环是多余的。
EnumThing.values();
将返回所有枚举值,而不是任何子集。那么,您到底想做什么?请解释得更详细一些。 - Rohit Jainthing
? - Daniel Kaplan