zoukankan      html  css  js  c++  java
  • Java开发利器--Lombok,Eclipse端安装使用教程

    一、Lombok简介

    Lombok是一个代码生成器,可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。

    如:getter setter toString equels方法等都可以自动生成

    使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。

    官方地址:https://projectlombok.org/

    二、Lombok安装

    2.1自动安装

    从官网下载Lombok.jar,放入 eclipse.ini所在的文件夹目录下;

     运行方法有两个:

      一、打开CMD以管理员身份运行,cd 到上面的目录,运行命令:java -jar lombok.jar

      二、直接双击运行,等几秒后会弹出安装界面,选择你要安装的eclipse.exe,点击安装(如果提示权限不够,用方法一运行)

      查看eclipse.ini文件最后是否多了一行 -javaagent:lombok.jar,有,则安装成功;

      项目中导入Lombok.jar包,重启eclipse,开始使用!

    2.2手动安装

    手动在 eclipse.ini文件最后添加-javaagent:lombok.jar,保存;

    项目中导入Lombok.jar包,重启eclipse,开始使用!

    2.3 Maven

    <dependency> 

          <groupId>org.projectlombok</groupId> 

          <artifactId>lombok</artifactId> 

          <version>1.16.2</version> 

    </dependency>

    三、Lombok常规使用

    @Getter / @Setter

    可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

    @EqualsAndHashCode

    默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

    @ToString

    生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

    @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

    无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

    @Data

    @ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了。

     

    四、Lombok原理

    解了简单的使用之后,现在应该比较好奇它是如何实现的。整个使用的过程中,只需要使用注解而已,不需要做其它额外的工作,那玄妙之处应该是在注解的解析上。JDK5引入了注解的同时,也提供了两种解析方式。

    4.1运行时解析

    运行时能够解析的注解,必须将@Retention设置为RUNTIME,这样可以通过反射拿到该注解。java.lang.reflect反射包中提供了一个接口AnnotatedElement,该接口定义了获取注解信息的几个方法,Class、Constructor、Field、Method、Package等都实现了该接口,大部分开发者应该都很熟悉这种解析方式。

    boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);

    <T extends Annotation> T getAnnotation(Class<T> annotationClass);

    Annotation[] getAnnotations();

    Annotation[] getDeclaredAnnotations();

    4.2编译时解析

    4.2.1 Annotation Processing Tool

    apt自JDK5产生,JDK7已标记为过期,不推荐使用,JDK8中已彻底删除,自JDK6开始,可以使用Pluggable Annotation Processing API来替换它,apt被替换主要有2点原因:api都在com.sun.mirror非标准包下没有集成到javac中,需要额外运行apt的更多介绍可以参见这里。

    4.2.2Pluggable Annotation Processing API

    JSR 269,自JDK6加入,作为apt的替代方案,它解决了apt的两个问题,javac在执行的时候会调用实现了该API的程序,这样我们就可以对编译器做一些增强,这时javac执行的过程如下:

    Lombok就是使用这种方式实现的,有兴趣的话可以去看看其Lombok源码,对应注解的实现都在HandleXXX中,比如@Getter注解的实现是HandleGetter.handle()。还有一些其它类库使用这种方式实现,比如Google Auto、Dagger等等。

      

  • 相关阅读:
    Visual Studio 中的Code Snippet(代码片段)功能介绍
    对 FID 的解释
    感性负载和二极管保护
    二极管信号检波器
    java如何自动设置数据库自增长编号
    JDK1.8遍历方式
    转载:windows查看进程端口号
    发布订阅:分发代理无法在C:Program FilesMicrosoft SQL Server120COM 目录中创建临时文件
    confluence搭建wiki
    Hadoop集群安装(centos7.5+ambari-2.7.4.0部署安装)
  • 原文地址:https://www.cnblogs.com/chenkeyu/p/8533245.html
Copyright © 2011-2022 走看看