APP下载

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

消息来源:baojiabao.com 作者: 发布时间:2026-05-27

报价宝综合消息Java中注解学习系列教程-3

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

在前两篇中我们学习了注解的定义、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的汇出功能

2019-12-04 15:59:00

相关文章