【发布时间】:2016-07-11 14:26:40
【问题描述】:
我有如下注释的类:
@BaseProp(category = Property.CATEGORY1)
where Property is a class defined as
public enum Property{
CATEGORY1("category1"), CATTEGORY2("category2");
public static Property getCategory(String value) {
return Property
.valueOf(Optional.ofNullable(value).orElseThrow(IllegalArgumentException::new).toUpperCase());
}
它有适当的getter、setter、构造函数和这个方法getCategory()。
我在多个包中的其他类被注释为
@Prop(category = Property.CATGORY1)
这些类扩展了一个基类。
我想为类创建两个 ArrayList 对象 -
1.扩展BaseClass和category注解为CATEGORY1
2.扩展BaseClass和category标注为CATEGORY2
从某种意义上说,我想识别类并为它们创建对象并将它们放在Objectx 的一般ArrayList 中。
如何使用反射和 Java 做到这一点?
【问题讨论】:
-
你问错问题了。如果您有
Class,则检查注释及其类别是微不足道的。但首先,您必须找出如何找到基类的所有子类。那么,如何动态创建实例是另一个话题。但是找到子类是最难的部分。
标签: java class reflection