Java Lombok 注解
Java Lombok About 1,883 words注解
- @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
Views: 3,373 · Posted: 2019-04-15
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...