所以我得到了一个方法来获取一个包中的所有类,并且我有一种方法来测试一个类是否被扩展为一个特定的类
for (Class c : classes) {
System.out.println("Class: " + c);
if (c.getSuperclass().equals(SpecielClass.class)) {
System.out.println(c + " is SpecielClass");
}
}
但是现在,我如何从 c 中获取“SpecielClass”方法?如果这可能吗?
答案 0 :(得分:1)
您可以从 SpecielClass
对象获取 SpecielClass.class
方法。
(由于 c
的每个实例都是一个 SpecielClass
,您可以在 invoke
的实例上c
这些方法)。
还值得注意的是,c.getMethods()
将包含从超类继承的方法(无论它们是否在子类中被覆盖),而 c.getDeclaredMethods()
将仅获取在类 {{1} 中声明的方法},但不是从超类型继承的那些。