Java Lombok 注解
Java Lombok 大约 1883 字注解
- @Data
- 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
- @Setter
- 注解在属性上;为属性提供 setting 方法
- @Getter
- 注解在属性上;为属性提供 getting 方法
- @Log4j
- 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
- @NoArgsConstructor
- 注解在类上;为类提供一个无参的构造方法
- @AllArgsConstructor
- 注解在类上;为类提供一个全参的构造方法
- @EqualsAndHashCode
- 实现equals()方法和hashCode()方法
- @ToString
- 实现toString()方法
- @Cleanup
- 自动帮我们调用close()方法
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
}
}
- @Value
- 用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法
- @Builder
- 用在类、构造器、方法上,为你提供复杂的builder APIs,让你可以像如下方式一样调用Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();更多说明参考Builder
- @SneakyThrows
- 自动抛受检异常,而无需显式在方法上使用throws语句
- @Synchronized
- 用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性$lock或$LOCK,而java中的synchronized关键字锁对象是this,锁在this或者自己的类对象上存在副作用,就是你不能阻止非受控代码去锁this或者类对象,这可能会导致竞争条件或者其它线程错误
- @Getter(lazy=true)
- 可以替代经典的Double Check Lock样板代 双重加锁
- @Log 根据不同的注解生成不同类型的log对象,但是实例名称都是log
- @CommonsLog
- Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
- @Log
- Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
- @Log4j
- Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);
- @Log4j2
- Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
- @Slf4j
- Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
- @XSlf4j
- Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
- @CommonsLog
阅读 1416 · 发布于 2019-04-15
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Java 并发编程之 ConcurrentLinkedQueue 非阻塞队列阅读 526
-
Linux grep 抓取多个关键字阅读 1932
-
Kubernetes Ingress 控制器 Nginx阅读 200
-
AndroidStudio 设置 so 库过滤阅读 3461
-
走进 Rust:HashMap 集合阅读 2245
-
CentOS 网卡配置多个 IP 地址阅读 140
-
Angular 添加事件监听阅读 1066
-
Golang 时间加减、计算方法耗、毫秒转 Time阅读 8178
-
JavaScript Date 时间函数阅读 342
-
Spring Boot Tomcat 启动流程阅读 340