Reflection 使用Java7查找属于超类的所有类
我正在寻找一种在java中查找属于某个超类的所有类的方法,并在该类中使用reflection?引用具有已知名称的静态字符串Reflection 使用Java7查找属于超类的所有类,reflection,java-7,Reflection,Java 7,我正在寻找一种在java中查找属于某个超类的所有类的方法,并在该类中使用reflection?引用具有已知名称的静态字符串 public class Bar extends ObjectInstance { public final static String Name = "Foo"; // more } 从实例出发;有n个类从ObjectInstance扩展而来,从all开始,我需要Name的值。我引用的类是生成的,因此我可以肯定地知道有一个Name元素可以引用,但我无法访
public class Bar
extends ObjectInstance
{
public final static String Name = "Foo";
// more
}
从实例出发;有n个类从ObjectInstance扩展而来,从all开始,我需要Name的值。我引用的类是生成的,因此我可以肯定地知道有一个Name元素可以引用,但我无法访问generation sourcedata。可能与 这也印证了我最初的感觉,即这只能像IDE那样完成:通过扫描树上的所有内容,边走边建立关系。不可能 一个失败的解决方案: 也可以作为工厂创建实例 使用类注释,并进行编译时扫描: 如何将此应用于您的案例:实验 使用您自己的类加载器会有一个更合适的解决方案,但这太过夸张了
publc abstract class ObjectInstance {
public abstring String name();
private static Map<String, Class<? extends ObjectInstance> klasses =
new HashMap<>();
protected ObjectInstance() {
classes.put(name(), getClass());
}
enum Name {
FOO(Bar.class),
BAZ(Baz.class),
QUX(Qux.class),
BAR(Foo.class);
public final Class<ObjectInstance> klass;
private Name(Class<ObjectInstance> klass) {
this.klass = klass;
}
}
@ObjectInstanceName("foo")
public class Bar extends ObjectInstance {
}