Java Lombok注解

JavaLombok大约 1879 字
  • @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);
阅读 361 · 发布于 2019-04-15

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批