我有一个包含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;
}
Run Code Online (Sandbox Code Playgroud)
有更清洁的方法吗?我觉得好像从thingValues数组中获取项目的循环是多余的.
Mar*_*nik 24
看看EnumSet.特别,
import java.util.EnumSet;
import static java.util.EnumSet.complementOf;
for (EnumThing t : complementOf(EnumSet.of(thing))) {
... do the work ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |