Lombok有常用的关键字和注解,方便高效率编程
Lombok
val var 关键字不常用
表示变量,会进行类型推导
val 定义final变量,不能再赋值
var 定义非final变量
@NonNull 指定方法入参不能为null
package com.test.lombok;
import lombok.NonNull;
/**
* @author wenxun
* @date 2024.02.22 8:13
*/
public class NonNullExample {
public void example(@NonNull String param){
System.out.println(param);
}
public static void main(String[] args) {
NonNullExample Non = new NonNullExample();
// Non.example(null); 报错 param is marked non-null but is null
Non.example("test not null");
}
}
@Cleanup
自动清理资源 比如InputSteam OutputStream 会自动调用close方法
package com.test.lombok;
import lombok.Cleanup;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @author wenxun
* @date 2024.02.22 10:12
*/
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
byte[] b = new byte[512];
in.read(b);
}
}
编译后的代码:
通过try finally 的方法来close
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream(args[0]);
try {
byte[] b = new byte[512];
in.read(b);
} finally {
if (Collections.singletonList(in).get(0) != null) {
in.close();
}
}
}
@ToString @Getter @Setter @EqualsAndHashCode
package com.test.lombok;
import lombok.*