Reflection 使用Java7查找属于超类的所有类

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元素可以引用,但我无法访

我正在寻找一种在java中查找属于某个超类的所有类的方法,并在该类中使用reflection?引用具有已知名称的静态字符串

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 {
}