自定义注解处理器和lombok

如何实现的

使用编译时注解的方式,在编译的时候对代码进行生成相应的方法

如何使用

lombok是一个开源项目,直接在pom中进行引用,然后在idea中进行插件安装

功能

通过添加注解的方式为我们自动生成一些方法,使得我们的代码更加简单易懂,在查看编译以后的文件会发现已经为我们生成了相应的方法

@Data
  public class TestLombok {
     private String name;
     private Integer age;
 
     public static void main(String[] args) {
         TestLombok testLombok = new TestLombok();
         testLombok.setAge(12);
         testLombok.setName("zs");
    }
 }
注解类型
  • 编译型注解:在程序编译期间通过注解处理器进行处理。编译期:java语言编译时一段不确定的操作过程,.java->.class 或者字节码转变成机器码的过程、还可能时.java-》机器码的过程
  • 运行时注解:正常使用的是运行时注解,@Controller等、在程序运行时通过反射得到我们注解的信息,然后做一些操作。运行期:jvm加载字节码文件到内存中,到最后使用完毕后卸载的过程都是运行期
注解处理工具apt

apt用于操作java源文件,而不是编译后的类,时javac 的一个编译时注解处理器,可以在编译的时扫描和处理注解。通过apt可以获得注解和注解对象的相关信息,拿到这些信息的时候进行生成相应的代码,省去了手动编写,这一系列动作都是在编译期间完成的,相比之下提高了程序性能
可以生成的文件除了.class文件还有xml文件,并不能修改原有类的信息

注解
Retention注解上面有一个属性value,它是RetentionPolicy类型的枚举类,RetentionPolicy枚举类中有三个值
  • SOURCE修饰的注解:修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中
  • CLASS修饰的注解:表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候
  • RUNTIME修饰的注解:表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时。所以它能够通过反射调用,所以正常运行时注解都是使用的这个参数
    Target注解上面也有个属性value,它是ElementType类型的枚举。是用来修饰此注解作用在哪的

自定义注解处理器

参考原文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值