java – 如何检查类的注释是否属于特定类别?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何检查类的注释是否属于特定类别?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1092字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何检查类的注释是否属于特定类别?](/upload/InfoBanner/zyjiaocheng/781/2f8d589ee5f84f05b6e1376f710dd180.jpg)
我的课程注释如下:
@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,constructors和这个方法getCategory().
我在多个包中的其他类被注释为
@Prop(category = Property.CATGORY1)
这些类扩展了一个基类.
我想为类创建两个ArrayList对象 –
1.扩展BaseClass,类别注释为CATEGORY1
2.扩展BaseClass,类别注释为CATEGORY2
在某种意义上,我想识别类并为它们创建对象,并将它们放在Objectx的一般ArrayList中.
我怎么能用反射和Java来做到这一点?
解决方法:
对于任何类(例如,类X扩展BaseClass),使用类似于:
Class<?> c = X.class; // or if you have X x, then x.getClass();
for (Annotation ann : c.getAnnotations()) {
if (ann instanceof BaseProp) { // make sure it's your annotation
BaseProp bp = (BaseProp)ann;
bp.category(); // do something here
}
}
您需要通过检查那里的实际属性值,然后根据需要将类分配到列表中,将您的决策逻辑放在“// do something here”行中.
内容总结
以上是互联网集市为您收集整理的java – 如何检查类的注释是否属于特定类别?全部内容,希望文章能够帮你解决java – 如何检查类的注释是否属于特定类别?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。