十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文是《Java中注解学习系列教程》第三篇文章
成都创新互联公司主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务新河,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220在前两篇中我们学习了注解的定义、JDK内置注解、注解分类及自定义注解的写法。
本文咱们将学习:
1:自定义注解一些说明
2:自定义注解怎么使用
3:怎么解析自定义注解
一:自定义注解一些说明:
自定义注解的时候,内部成员可被允许的类型又有哪些呢?
1:基本类型(Java中8中基本类型)
2:stirng类型
3:class
4:其他注解
5:枚举类
6:以上五类的数组
如下图:
Java官方文档(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下:
类型举例:
需要说明的:
1:如果注解只有一个成员时候,成员名称必须为value
2:注解类可以没有成员,没有成员的注解为:标识注解
二:自定义注解的使用
说明:自定义注解根据其使用范围使用。
如MyAnnotation1这个自定义注解
使用范围是是method和field上。
我们就在method的使用该注解:
语法是:
注解名称(成员名称 = 成员值,成员名称2 = 成员值2)
如下图:
三:注解解析
在使用注解的时候,使用的反射处理的。
public class MyAnnotation1Test { public static void main(String[] args) { try { //1:使用类加载器加载类 Class clazz = Class.forName("MyAnnotation1PoJo"); //2:在对于的类上是否存在对于注解 //获取方法上是否有注解 for(Method method : clazz.getMethods()){ boolean isMothExistMyAnnotation1 = method.isAnnotationPresent(MyAnnotation1.class); if(isMothExistMyAnnotation1){ //3:如果存在。就获取 MyAnnotation1 myAnnotation1 = (MyAnnotation1)method.getDeclaredAnnotation(MyAnnotation1.class); System.out.println("==>:方法"+method.getName()+"有注解。值为:"+myAnnotation1.value()); }else{ System.out.println("==>:方法"+method.getName()+"无注解"); } } }catch (Exception e){ e.printStackTrace(); } } }
注:关于反射方面的学习。在后期,凯哥也会出相应的学习教程。
我们查看运行后的结果:
可以正常解析出自定义注解的值。
下节预告:在下一节中,凯哥将通过自定义注解实现excel的导出功能
声明:本文由凯哥Java系列教程中Java注解讲解第三篇文章。
本文出处:http://www.kaigejava.com/article/detail/441
凯哥博客:www.kaigejava.com
凯哥公众号:凯哥Java(kaigejava)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。