记录 lombok 使用

Project Lombok is a java library that automatically plugs into your editor 
and build tools, spicing up your java.
Never write another getter or equals method again, 
with one annotation your class has a fully featured builder,
Automate your logging variables, and much more.

翻译 : lombok可以自动添加到编辑器中的代码增强工具,再也不用写在getter和 euqals ,toString一些方法。

只需要在一个java类上添加一个注解,就可以拥有功能齐全的的构建器,还有自动日志变量,等等其他的功能。

上面是lombok的官方的一段文字,然后官网还有一段视屏来演示如何使用lombok.

使用lombok就可以完全的不用写java实体类或者是其他的类的getter、setter、toString等方法。

使用lombok需要导入jar包 和 在idea安装插件。idea插件安装可以百度。

maven导入jar

   <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <version>1.18.4</version>
       <scope>provided</scope>
   </dependency>

lombok 特性一 : 

val 变量, val变量只能是局部变量,相当于java中的 final  局部变量。特别注意的是val 变量可以声明任何

java类型的.

官方示例 使用了lombok:

import java.util.ArrayList;
import java.util.HashMap;
import lombok.val;

public class ValExample {
  public voidexample() {
    val example = new ArrayList<String>();
    example.add("Hello, World!");
    val foo = example.get(0);
    val map = new HashMap<Integer, String>();
  }
}

官方示例没有使用lombok时java代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class ValExample {
  public String example() {
    final ArrayList<String> example = new ArrayList<String>();
    final HashMap<Integer, String> map = new HashMap<Integer, String>();
    example.add("Hello, World!");
    final String foo = example.get(0);
    return foo.toLowerCase();
  }
}

这俩种代码是相等的。

特征二 var变量: var变量 和 上面说的val变量的工作方式完全一样,只是没有被标记为 finall . (这里需要设置lombok.var.flagUsage)

特征三 : @Data 注解

在实体类上加上该注解 就相当于 @ToString@EqualsAndHashCode@Getter , @Setter,@RequiredArgsConstructor

这些注解汇集在一起。 省去了我们用编译器生成toString()方法,每个字段的get和set方法,以及 equals()  和 

hashCode()方法。如果类中有f inal 修饰 的字段,则没有无参构造函数, 默认生成的是带 final 字段的构造函数。

官方示例 :

 

特征四 : @Getter/@Setter @ToString  @EqualsAndHashCode  

生成 pojo 类属性的get、set 等方法 。

特征五 : @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor 各种形式的构造方法。

第一个是无参构造函数,第二个是带 final属性的构造函数, 第三个是全部属性的构造参数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值