gpt4 book ai didi

java - 如何为 Java 枚举编写通用的 for 循环?

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:15 25 4
gpt4 key购买 nike

有没有办法编写一个通用循环来遍历任意枚举?例如:

public static void putItemsInListBox(Enum enum, ListBox listbox){
for(Enum e : enum.values(){
listBox.addItem(e.toString(), String.valueOf(e.ordinal());
}
}

您不能执行上述操作,因为 Enum 类没有像已实现的 Enum 类那样的名为 values() 的方法。上面的 for 循环适用于定义为枚举的类。

最佳答案

它的工作方式与传递 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());
}
}

用法:

enum ABC { A, B, C }
...
iterateOverEnumsByClass(ABC.class);
iterateOverEnumsByInstance(ABC.A);

关于java - 如何为 Java 枚举编写通用的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com