多个枚举实现了一个接口,怎么遍历这些枚举
时间: 2024-01-21 11:03:59 浏览: 60
如果多个枚举实现了同一个接口,可以通过 Java 中的枚举类的静态方法 values() 获得所有枚举值,然后遍历这些枚举值,调用实现的接口方法。示例代码如下:
```java
interface MyInterface {
void doSomething();
}
enum MyEnum1 implements MyInterface {
VALUE1 {
@Override
public void doSomething() {
System.out.println("MyEnum1.VALUE1 doSomething");
}
},
VALUE2 {
@Override
public void doSomething() {
System.out.println("MyEnum1.VALUE2 doSomething");
}
}
}
enum MyEnum2 implements MyInterface {
VALUE1 {
@Override
public void doSomething() {
System.out.println("MyEnum2.VALUE1 doSomething");
}
},
VALUE2 {
@Override
public void doSomething() {
System.out.println("MyEnum2.VALUE2 doSomething");
}
}
}
// 遍历所有实现 MyInterface 接口的枚举
for (MyInterface myEnum : EnumSet.allOf(MyEnum1.class)) {
myEnum.doSomething();
}
for (MyInterface myEnum : EnumSet.allOf(MyEnum2.class)) {
myEnum.doSomething();
}
```
在上面的示例代码中,MyEnum1 和 MyEnum2 都实现了 MyInterface 接口,通过 EnumSet.allOf() 可以获取所有枚举值,然后遍历这些枚举值,调用实现的接口方法 doSomething()。
阅读全文