Lombok的一些常用注解

lombok的一些使用

1. maven依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

2. 在idea中下载lombok插件

(1)打开idea编辑器
(2)
在这里插入图片描述
(3)
在这里插入图片描述
因为我已经安装好了lombok插件;如果是没有安装的,就在Lombok后边会有Install,点击Install就可以安装了,但是需要注意的是:安装好了,需要关闭重新启动一下idea编辑器

3. Lombok常用的注解

(1)@Getter/@Setter

作用范围:类上或类中字段上,会自动生成getter/setter的方法。

(2)@Data、@Value

@Data注解在类上,将类提供的所有属性都添加get、set方法,并添加equals、hashCode、toString方法

@Value注解用于修饰类,相当于是@Data的不可变形式,因为字段都被修饰为private和final,默认的情况下不会生成settter。

(3)@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor

@NoArgsConstructor:生成无参的构造方法。
@AllArgsConstructor:生成该类下全部属性的构造方法。
@RequiredArgsConstructor:生成该类下被final修饰或者non-null字段生成一个构造方法。
场景:
在springboot中,对于一个bean类,注入其他bean的时候,常见的是使用@Autowired,实际上也可以使用构造函数注入,这个时候就可以使用@AllArgsConstructor或者@RequiredArgsConstructor来代替。

(4) @ToString

作用范围:类上,会自动生成toString的方法。

(5)@Slf4j

作用范围:类上,在需要打印日志的类中使用,可以直接log.info()等日志输出。

以上这些都是我在工作比较经常使用的。

@Slf4j这个注解在使用时别输出什么重要信息
在这里插入图片描述

(6)@EqualsAndHashCode

任何类定义都可以使用@EqualsAndHashCode进行注释,可以在类中生成equals()和hashCode()方法的。

(7) @Cleanup

可以使用@Cleanup以确保在代码执行路径退出当前作用域之前自动清除给定资源。可以通过使用@Cleanup注释任何局部变量声明来执行此操作:
@Cleanup InputStream in = new FileInputStream(“D://file”);

import java.io.*;

public class Test {
  public static void main(String[] args) {
    try {
            @Cleanup
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            baos.write(new byte[] {'Y','e','s'});
            System.out.println(baos.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }

  }
}

(8) @Builder

只能标注到类上,将生成类的一个当前流程的一种链式构造工厂
User user = User.builder().mobile("").email("").build();

(9) @Accessors

只能标注到类上,可以减少书写代码,支持链式操作,同时减少多余对象的创建,builder类元信息又可以减少
示例:实体类加上 @Accessors(chain = true) 注解
User user = new User().setEmail("").setMobile("");

(10) @NonNull

该注解快速判断是否为空,如果为空的话会抛出java.lang.NullPointerException异常。

(11)@Synchronized

注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上。

(12)@SneakyThrows

该注解就是为了省略try{}catch{}的,如:
之前的代码都是

public class Student {
	public String study(){
		try{
			throw new Throwable();
		}catch(Throwable e) {
			e.printStackTrace();
		}
	}
}

现在就可以写成

public class Student {
	@SneakyThrows
	public String study(){
		throw new Throwable();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值