java注解课程_Java中注解学习系列教程-3

Java中注解学习系列教程-3

凯哥java 凯哥java

本文是《Java中注解学习系列教程》第三篇文章

在前两篇中我们学习了注解的定义、JDK内置注解、注解分类及自定义注解的写法。

本文咱们将学习:

30e25f082c6ccccb0f271304a4317c58.png

1:自定义注解一些说明

2:自定义注解怎么使用

3:怎么解析自定义注解

一:自定义注解一些说明:

自定义注解的时候,内部成员可被允许的类型又有哪些呢?

1:基本类型(Java中8中基本类型)

2:stirng类型

3:class

4:其他注解

5:枚举类

6:以上五类的数组

如下图:

7bf590d3565548bb4cc2ee3d42f0a144.png

Java官方文档(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下:

46977224da13232273730464e785dab6.png

类型举例:

a776ee2f7e1d6610c8fef723e7fa254f.png

需要说明的:

1:如果注解只有一个成员时候,成员名称必须为value

2:注解类可以没有成员,没有成员的注解为:标识注解

二:自定义注解的使用

说明:自定义注解根据其使用范围使用。

如MyAnnotation1这个自定义注解

78f51b6a905bc86816180bd38455bd65.png

使用范围是是method和field上。

我们就在method的使用该注解:

语法是:

注解名称(成员名称 = 成员值,成员名称2 = 成员值2)

如下图:

2fe731b511091bf0f37dda454d962afd.png

三:注解解析

在使用注解的时候,使用的反射处理的。

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();

}

}

}

67e4d19a3286f087ae0f49188183a810.png

注:关于反射方面的学习。在后期,凯哥也会出相应的学习教程。

我们查看运行后的结果:

5e41cf44de68c9dd3b947e60c468dd05.png

可以正常解析出自定义注解的值。

下节预告:在下一节中,凯哥将通过自定义注解实现excel的导出功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值