Lombok 的使用
介绍
- 官网: projectlombol.org
- 通过简单注解来精简代码。
pom
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
idea下载lombok工具
get/set可以标记在类上(全局统一配置),或者单个方法上。
@ToString 自动添加toString方法
@Setter
@Getter
@ToString
public class User {
private String id;
private String name;
private Integer age;
}
public class User {
private String id;
@Setter
@Getter
private String name;
private Integer age;
}
@Data功能相当于 @Setter@Getter@ToStrin@EqualsAndHashCode@RequiredArgsConstructor五个组合在一起
@Data
public class User {
private String id;
private String name;
private Integer age;
}
@Accessors(chain = true)链式编程
@Setter
@Getter
@Accessors(chain = true)
public class User {
private String id;
private String name;
private Integer age;
}
public static void main(String[] args) {
//使用@Accessors(chain = true)
User userChain = new User();
userChain.setId("1").setName("chain").setAge(1);
}
@Builder bulider编程
@Setter
@Getter
@Builder
public class User {
private String id;
private String name;
private Integer age;
}
public static void main(String[] args) {
User user = User.builder().id("1").name("builder").age(1).build();
System.out.println(user.getId());
}
@UtilityClass 工具栏(就是变成静态方法)
@UtilityClass
public class Utility {
public String getName() {
return "name";
}
}
public static void main(String[] args) {
// Utility utility = new Utility(); 构造函数为私有的,
System.out.println(Utility.getName());
}
java也能够像javascript一样使用弱类型定义变量了
val注解变量申明是final类型 var注解变量是非final类型
//非finall类型
var ss = new ArrayList<>();
//final类型
val doub = new int[]{1,2,3};
注解描述(只记录我感兴趣的注解)
- @Slf4j: LogBack日志框架,使用这个注解
- @Log4j: Log4j日志框架,使用这个注解
- @Data:注解在类上,将类提供的所有属性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法
- @Setter:注解在类上,为所有属性添加set方法、注解在属性上为该属性提供set方法
- @Getter:注解在类上,为所有的属性添加get方法、注解在属性上为该属性提供get方法
- @Getter(AccessLevel.PROTECTED):注解在类上,私有get方法
- @Builder:使用builder模式创建对象
- @NoArgsConstructor:创建一个无参构造函数
- @AllArgsConstructor:创建一个全参构造函数
- @ToString:创建一个toString方法
- @ToString(exclude=”column”):排除column参数的toString
- @ToString(exclude={“column1”,”column2”}):排除2参数的toString
- @ToString(of=”column”):只包含column参数的toString
- @ToString(of={“column1”,”column2”}):只包含2参数的toString
- @Accessors(chain = true)使用链式设置属性,set方法返回的是this对象。
- @UtilityClass:工具类
- @Cleanup: 关闭流、连接点。
- @EqualsAndHashCode:重写equals和hashcode方法。
- @toString:创建toString方法。
- @val @var:val注解变量申明是final类型 var注解变量是非final类型(就是js里的var)
还没有评论,来说两句吧...