智能编码求解放 -- Lombok

本文详细介绍了Lombok注解在Java开发中的应用,包括@GET/@SET、@ToString/@EqualsAndHashCode、@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor、@NonNull、@Builder、@Data、@Cleanup、@SneakyThrows等注解的功能及使用场景,帮助开发者减少模板代码,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:概述

为每个类添加get/set方法、toString、hash、构造器等等都是重复无技术含量的劳动,并且及其影响代码的美观。Lombok工具应运而生,通过注解生成类对象属性的get/set、toString、hash、构造器等等方法模块。最大的一个优点就是不用在修改属性的时候担心属性对应的方法未进行修改

二:@GET/@SET
  • 作用域:类/属性
  • 作用:类上表示为所有属性生成get/set方法,属性则为该属性生成
  • 属性:value标记生成方法访问权限,默认public、lazy标记是否延迟加载,默认fals
@Getter(value = AccessLevel.PUBLIC,lazy = true)
@Setter
public class Person {
    private String name;
    private Integer age;
}

class Test{
    @Getter @Setter
    private String email;
}

@Getter/@Setter注解效果图

三:@ToString / @EqualsAndHashCode
  • 作用域:类
  • 作用:@ToString注解重写toString(),@EqualsAndHashCode注解重写equals()和hashCode()
  • 属性:of标记包含属性,exclude标记不包含属性,属性含义@EqualsAndHashCode与@ToString一致
@ToString(of = {"name","age"},exclude = {"age"})
@EqualsAndHashCode(of = {"name"},exclude = {"age"})
public class Person {
    private String name;
    private Integer age;
}

@ToString/@EqualsAndHashCode效果图

四:@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
  • 作用域:类
  • 作用:@NoArgsConstructor生成无参构造、@RequiredArgsConstructor生成包含@NonNull修饰属性的构造器、@AllArgsConstructor生成所有属性的构造器
  • 参数:staticName将生成静态方法获取对象实例,方法名就是参数值、access限定访问权限
@NoArgsConstructor(staticName = "no",access = AccessLevel.PROTECTED)
@RequiredArgsConstructor(staticName = "required")
@AllArgsConstructor(staticName = "all")
class Test{

    private String email;

    @NonNull
    private String address;

}

构造器注解效果图

五:@NonNull
  • 作用域:属性
  • 作用:作用与成员变量亦或是参数标识不能为空,为空抛出空指针异常
六:@Builder
  • 作用域:类
  • 作用:将类转换为建造者模式
七:@Data
  • 作用域:类
  • 作用于类上,效果相当于@Getter、@Setter、@EqualsAndHashCode、@RequiredArgsConstructor、@ToString
@Data
class Test{
    private String email;
    @NonNull
    private String address;
}

@Data注解效果图

八:@Cleanup
  • 作用域:声明资源行前
  • 作用:自动关闭资源,实现Closeable接口有效,经典例如IO等
    @Cleanup FileInputStream fis = new FileInputStream(new File(""));
九:@SneakyThrows
  • 作用域:方法
  • 作用:捕获异常并进行抛出处理
    @SneakyThrows
    public static void testMethod(){
        @Cleanup FileInputStream fis = new FileInputStream(new File(""));
    }
十:IDEA使用

在这里插入图片描述

IDEA中使用Lombok的时候一定要注意完成插件的安装、依赖引入两个步骤才能正常使用。往往很多时候造成不能使用的原因就是未安装Lombok插件导致的,切记这一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值