idea下载插件:lombok
按图中设置,启用lombok注解提示:
在pom.xml添加lombok的依赖
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
创建实体类测试:
package com.tencent.lombok_demo.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @NonNull : 让你不在担忧并且爱上NullPointerException
* @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
* @Setter/@Getter : 自动生成set和get方法
* @ToString : 自动生成toString方法
* @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
* @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor 自动生成构造方法
* @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
* @Value : 用于注解final类
* @Builder : 产生复杂的构建器api类
* @SneakyThrows : 异常处理(谨慎使用)
* @Synchronized : 同步方法安全的转化
* @Getter(lazy=true) :
* @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
private String name;
private int age;
}
测试:
package com.tencent.lombok_demo.mytest;
import com.tencent.lombok_demo.model.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@Slf4j
public class MyTest {
@Test
public void test1(){
User user = new User();
user.setAge(10);
user.setName("yu");
log.info("info...");
System.out.println(user);
}
}
lombok的注解介绍
@NonNull : 让你不在担忧并且爱上NullPointerException
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
@Setter/@Getter : 自动生成set和get方法
@ToString : 自动生成toString方法
@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
自动生成构造方法
@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
@Value : 用于注解final类
@Builder : 产生复杂的构建器api类
@SneakyThrows : 异常处理(谨慎使用)
@Synchronized : 同步方法安全的转化
@Getter(lazy=true) :
@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j
推荐使用技巧
- 在 Bean / Entity 类上使用 @Data 注解。
- 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
-
注意:lombok 的注解不能被继承
详情参考博客:
https://www.cnblogs.com/zhangyinhua/p/8623018.html