java简化代码插件之 浅聊 Lombok

本篇就聊Lombok,先看一下Lombok是什么。

Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个注解,你的类就有一个功能齐全的构建器、自动记录变量等等

本篇就是简单的聊一下其使用,所以不分析其具体实现逻辑,以及底层。不过还是要简单的说一下,其能实现的原理还是通过反射实现的,前面聊过注解的范围,其也是设置了注解生效的范围。当然就算不了解,在使用过程中也不是什么壁垒,对需要了解其底层原理的话可以看下:注解和反射.

现在来演示其简单的方式:

以前的话定义个javabean类的话需要这样写:

public class Person {
    String name;
    int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}

然后可以调用,但是使用Lombok的话如下:

import lombok.Data;

@Data
@AllArgsConstructor
public class Person {
    String name;
    int age;
}

是不是简单很多,但是有一点要说明那就是lombok虽然很方便,但是其有一个问题,那就是当一个项目团队中一个人是用这个插件,那么其它人也要使用,不然会报错的。所以如果自己写的项目是否使用根据自己的喜好即可,但是在项目中时候,就需要看项目需求文档。

配置插件

既然是插件,可以访问官网:https://projectlombok.org/download

但是因为是用的IDE,所以直接进行下载,不过有些不同的是,因为之前直接可以下载Lombok这个插件,现在似乎查询不到,所以只用

不过有些时候需要安装,因为IDE默认会安装的.

java简化代码插件之 浅聊 Lombok_第1张图片

同样在使用的时候,需要导入其第三方包的。这个可以在编写代码的时候,写好Alt进行自动下载lombok的jar包即可。

这个时候还有一个问题,那就是在调用的时候会发现会报错,因为所以可以提示由get/set方法,但是在编译的时候会报错这个时候就需要如下设置:

java简化代码插件之 浅聊 Lombok_第2张图片

然后就可以使用了。

注解

可以看出其注解或者说插件很多:

java简化代码插件之 浅聊 Lombok_第3张图片

但是本篇指数聊一下常用的,其它不常用的如果需要就自己看一下文档即可。

注解 使用位置 描述
@Getter 字段或类上 【a】如果使用在类上,没有其它属性的话,生成类中所有字段的get方法。
【b】 如果使用在字段上,就生成对应的字段的get方法
@Setter 字段或类上 其实类似于上一个注解,不过有一点要注意,其不会给final修饰的属性生成set方法。
@NoArgsConstructor 类上 生成无参数的构造方法
@RequiredArgsConstructor 类上 生成部分参数的构造方法
@AllArgsConstructor 类上 生成全部属性的构造方法。
@ToString 类上 重写tostring方法,打印格式: 类名(属性1=值1, 属性2=值2, …),当然也可以写其中几个@ToString( exclude={“不含属性1“,”不含属性2”})或者写包含@ToString( of={“含属性1”,”含属性2”}
@EqualsAndHashCode 类上 判断个对象是否一直一般会重写了equals,和hashcode方法。这而这个注解还会再重写一个方法canEqual方法
@data 类上 生成get/set方法,还有重写tostring,hashcode,equals,以及canEqual方法。
@CleanUp 局部变量 会自动再方法结束前调用close方法,常用咋IO等操需要关闭的资源的变量前。
@NonNull 字段,参数,局部变量 用于非空判断,避免出现空指针异常,放在前面使用。@NonNull String s;
var 变量前 可以省略变量的具体类型例如 var s= new String(”ss“);
@Builder @Builder 这个可以简化赋值属性操作,比如 Test t =new Test(); t.setName(“dd”); t.setAge(12);如果很多就会写很长 然后可以如此赋值 Test t =new Test(); t.builder().name(”dd“).age(12);

演示其中几个感受一下其让代码简洁:

public class test {
    public static void main(String[] args)  {
      User user =new User("张三",12);
      System.out.println(user);
    }
}
@Data
@AllArgsConstructor
class  User{
    String name;
    int age;
}

在这里插入图片描述

总结:

  • 优点
    • 提高开发效率,使用注解即可为POJO添加get、set方法、构造器、toString、equals、hashCode方法、非空判断、关闭资源等。而且是代码更加简洁。
    • 属性修改时,无需修护对应的get、set方法。
  • 缺点
    • 大大降低了代码的可读性和完整性,让人觉得摸不到头脑。
    • 对于不熟悉Lombok的开发人员,开发和修护造成一定的障碍。

还是那句话用不用的话,个人看习惯,项目看规范。反正技多不压身,多学一点是一点。

你可能感兴趣的:(工具以及工具类网站,java,Lombok,注解getter,注解Data)