Tôi có enum với 4 giá trị và tôi có chữ ký phương thức chấp nhận giá trị enum. Tôi muốn để có thể làm một cái gì đó với tất cả các giá trị enum không được thông qua như là đối số để doSomething().Lặp qua một tập con của một giá trị enum
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;
}
Có cách nào khác để làm điều này không? Tôi cảm thấy như thể vòng lặp để lấy các mục từ mảng thingValues là thừa.
'EnumThing.values ();' sẽ trả về tất cả các giá trị enum và không phải bất kỳ loại tập con nào. Vì vậy, chính xác những gì bạn muốn làm gì? Xin giải thích thêm một chút. –
từ tất cả các giá trị enum Tôi loại bỏ giá trị enum được chuyển làm đối số, và sau đó tôi muốn lặp qua các giá trị còn lại. – andersra
Và tôi nghĩ bạn đã biết cách lặp qua một mảng hoặc Bộ sưu tập. –