如何获取使用特定注释进行注释的对象(非类)的所有字段和属性而不进行迭代all它的字段或属性描述符?
我的目标是避免对显然没有注释的每个字段或属性进行不必要的迭代,例如 getClass() 或不是实例的字段或成员变量的类的任何字段。
或者迭代是唯一的出路吗?还有其他更好的方法吗?
你可以使用反射包 http://code.google.com/p/reflections/这会为你完成所有的工作。项目描述:
Reflections 扫描您的类路径,索引元数据,允许您在运行时查询它,并可以保存和收集项目中许多模块的信息。
使用 Reflections,您可以查询元数据,例如:
- 获取某种类型的所有子类型
- 获取所有带有某些注释的类型/方法/字段,不匹配注释参数
- 获取与正则表达式匹配的所有资源
Example:
Reflections reflections = new Reflections("my.project.prefix");
Set<Class<? extends SomeType>> subTypes =
reflections.getSubTypesOf(SomeType.class);
Set<Class<?>> annotated =
reflections.getTypesAnnotatedWith(SomeAnnotation.class);
Set<Class<?>> annotated1 =
reflections.getTypesAnnotatedWith(new SomeAnnotation() {
public String value() { return "1"; }
public Class<? extends Annotation> annotationType() {
return SomeAnnotation.class;
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)