Java中自定义注解类及使用实例解析

  

这篇文章主要介绍了Java中自定义注解类并使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

在Java框架中,经常会使用注解,而且还可以省很多的事,来了解下自定义注解。
  

  

注解是一种能被添加到java代码中的元数据,类,方法,变量,参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响

  

先写一个自己的注解类
  

        @Documented//会被javadoc命令识别   @Retention (RetentionPolicy.RUNTIME)//相当于作用时期,比如:运行期,编译期   @Target ({ElementType.METHOD})//相当于作用域,比如方法,类   公共@ interface括号{      字符串值();//也可以这么写,就是说,它的默认值是你好//字符串值()默认的“你好”;      }      

然后解析上边用到的那两个类:

        公共enum RetentionPolicy {   源,   类,   运行时   }
           公共enum应用{/* *类,接口(包括注释类型),或枚举声明*/类型,   领域,   方法,   参数,   构造函数,   LOCAL_VARIABLE,   ANNOTATION_TYPE,   包   }      

可以看的到,是两个枚举类,也就是我们自定义的注解有一定的时间和空间作用域。
  好了,我们的自定义注解已经完成了(对的,自定义注解就上边那一段代码),那我们就来看看要怎么有用呢?很容易啊,就和其他的注解一样,写在我们要用到的地方就好了。(对的,我确定不是在开玩笑)

        公共类人{      @MyValue(值=" https://www.yisu.com/zixun/张三”)   私人字符串名称;/*   为什么要写setter和getter,很快你就会知道   */公共字符串getName () {   返回名称;   }      公共空间setName(字符串名称){   this.name=名称;   }   }      

然后我们在其他地方去拿

        人的人=new ();   System.out.println (person.getName ());//null//这就很难受,按道理来说,不是应该是张三吗?      

大家都知道,像春天这种框架都是通过反射来实现的,我们就模拟一个“编译类”,我们是在属性上用的注解,所以就先用反射来拿到类的所有属性

        公共静态void main (String [] args)抛出NoSuchFieldException {   人的人=new ();//按理来说,我们是拿到这个Person.class的所有的属性,然后遍历,来挨个注入,但是这里我们明明确我们的属性名,所以就简单化了   字段字段=Person.class.getDeclaredField(“名字”);      括号注释=field.getAnnotation (MyValue.class);//拿到注解类      字符串名称=annotation.value();//这个值()就是我们在MyValue类中的的属性//然后我们就注入到这个类中,这时就用到了setter方法   person.setName(名称);      system . out。println(“通过自定义注解后的人的名字是:“+ person.getName ());   }      

癑ava中自定义注解类及使用实例解析"

  

是的,这样我们就通过了自定义注解给人注入了一个名称属性,但是在实际运用中不可能这么复杂,这只是入门了一下,我们可以将这个“模拟的编译类”组装成一个工具类,以便我们在实际中运用。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Java中自定义注解类及使用实例解析