迭代Java中声明的枚举

时间:2014-06-19 17:54:23

标签: java enums

假设我想迭代实现某个接口的所有声明的枚举类。

所以我有:

enum Fruit implements Edible {

//etc

}

enum Vegetable implements Edible {

//etc

}

enum Candy implements Edible {

//etc

}

Java中是否有一种方法可以遍历实现Edible接口的所有枚举类?我认为这需要反思。使用标准的Java类,我不相信有办法做到这一点(找到所有类的子类,或者找到实现某个接口的所有类)但是使用枚举,应该< / em>是一种在Java中执行此操作的方法。

1 个答案:

答案 0 :(得分:2)

scan through all classes in classpath并检查是否isEnum()并检查getInterfaces()是否包含Editable.class或检查Editable.class.isAssignableFrom(ClassToCheck)(如评论中所述)