Nic*_*ick 12 java enums for-loop
有没有办法编写一个通用循环迭代任意枚举?例如:
public static void putItemsInListBox(Enum enum, ListBox listbox){
for(Enum e : enum.values(){
listBox.addItem(e.toString(), String.valueOf(e.ordinal());
}
}
Run Code Online (Sandbox Code Playgroud)
您无法执行上述操作,因为Enum类没有像实现的Enum类那样的名为values()的方法.上面的for循环适用于定义为枚举的类.
axt*_*avt 22
它的工作方式与Class传递的方式完全相同:
public static <E extends Enum<?>> void iterateOverEnumsByInstance(E e)
{
iterateOverEnumsByClass(e.getClass());
}
public static <E extends Enum<?>> void iterateOverEnumsByClass(Class<E> c)
{
for (E o: c.getEnumConstants()) {
System.out.println(o + " " + o.ordinal());
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
enum ABC { A, B, C }
...
iterateOverEnumsByClass(ABC.class);
iterateOverEnumsByInstance(ABC.A);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5024 次 |
| 最近记录: |