Java 循环遍历扩展某个类的所有类

Java 循环遍历扩展某个类的所有类,java,class,Java,Class,我想做的是循环遍历所有扩展我称为Cmd的类的类 例如,我希望能够做到的是: for (Class<?> c : classesExtendingSuperclass) { cmds.put(c, c.getName()); } for(类c:classesExtendingSuperclass){ put(c,c.getName()); } 谢谢 编辑:我不能在我的项目中使用反射,如果我这样做,在使用程序时会使一切复杂化。由于项目中的性能下降,我无法使用反射。如果我正确理

我想做的是循环遍历所有扩展我称为Cmd的类的类

例如,我希望能够做到的是:

for (Class<?> c : classesExtendingSuperclass) {
    cmds.put(c, c.getName());
}
for(类c:classesExtendingSuperclass){
put(c,c.getName());
}
谢谢


编辑:我不能在我的项目中使用反射,如果我这样做,在使用程序时会使一切复杂化。由于项目中的性能下降,我无法使用反射。

如果我正确理解了您的问题,我认为这就是您要寻找的:

Reflections reflections = new Reflections("com.mycompany");    
Set<Class<? extends MyInterface>> classes = reflections.getSubTypesOf(MyInterface.class);
Reflections=newreflections(“com.mycompany”);

SetI不能在我的项目中使用反射,如果我这样做,在使用程序时会使一切复杂化。@Banjo226它不是Java的类,请注意它是
反射
。我想OP应该提到它是第三方库。我知道它不是JDK的一部分,我知道它是一个库。我想说的是,由于我正在做的项目中it的性能下降,我不能使用反射。性能影响对您来说是否比开发和测试您自己的it实现以及实际使用it所花费的时间更有价值?@Makoto是的,性能很重要。这是为bukkit(minecraft服务器软件)设计的,大家都知道reflections会滞后,并且软件会出现性能问题,这是我不想要的。老实说,这有点像是一个问题。你能解释一下你用这个代码的意图吗?也许你会得到一个更好的答案,而不是把它混为一谈。