Lombok_使用笔记

原理

JSR-269:插件化注解处理API
在这里插入图片描述

安装

idea中安装Lombok插件即可。

常用注解

@Getter/@Setter

标注在类或者成员属性上,自动生成getter和setter方法

@Getter
@Setter
public class User {
    
    private String name;
    private Integer age;

}

可以通过属性设置访问级别
在这里插入图片描述
如果访问级别设置为NONE,表示该属性不自动生成getter和setter方法。

@ToString

自动生成tostring方法

@ToString
public class User {

如果需要排除某些属性,通过exclude

@ToString(exclude = {"name","age",...})

如果需要指定输出某些属性或者静态属性(默认不输出),通过of

@ToString(of = {"name","age",...})

@EqualsAndHashCode

自动生成三个方法:
在这里插入图片描述
同样有of和exclude属性
在这里插入图片描述

@NonNull

标注方法(包括普通方法和构造方法)参数不能为空。

public void test(@NonNull String str){
    System.out.println(str);
}

标注成员属性不能为空

public class User {

    @NonNull
    private String name;

@NoArgsConstructor

无参构造器

@RequiredArgsConstructor

生成有参构造器,参数包括标注@NonNull的属性和未赋值的final属性(可能会与@NoArgsConstructor有冲突)

@AllArgsConstructor

全参构造器

@Data

@Getter/@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor

@Builder

在这里插入图片描述
支持流式创建一个对象

@Builder
public class User {

    private String name;
    private Integer age;

    public static void main(String[] args) {
        User user=User.builder().name("zhs").age(18).build();
    }
}

@Log、@Slf4j …

使用log.info();输出日志

val

这不是一个注解,类似于js一样定义一个变量

val map=new HashMap<String,String>();

@Cleanup

自动关闭IO流

@Cleanup InputSteam is=new FileInputStream("path");
发布了417 篇原创文章 · 获赞 45 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Chill_Lyn/article/details/105032298