@Data
最常用注解

@Data
public class Demo {private Long id;private String name;
}

编译后

    public class Demo {private Long id;private String name;public Demo() {}public Long getId() {return this.id;}public String getName() {return this.name;}public void setId(Long id) {this.id = id;}public void setName(String name) {this.name = name;}public boolean equals(Object o) {if (o == this) {return true;} else if (!(o instanceof Demo)) {return false;} else {Demo other = (Demo)o;if (!other.canEqual(this)) {return false;} else {Object this$id = this.getId();Object other$id = other.getId();if (this$id == null) {if (other$id != null) {return false;}} else if (!this$id.equals(other$id)) {return false;}Object this$name = this.getName();Object other$name = other.getName();if (this$name == null) {if (other$name != null) {return false;}} else if (!this$name.equals(other$name)) {return false;}return true;}}}protected boolean canEqual(Object other) {return other instanceof Demo;}public int hashCode() {int PRIME = true;int result = 1;Object $id = this.getId();int result = result * 59 + ($id == null ? 43 : $id.hashCode());Object $name = this.getName();result = result * 59 + ($name == null ? 43 : $name.hashCode());return result;}public String toString() {return "Demo(id=" + this.getId() + ", name=" + this.getName() + ")";}}

@NonNull

    public void setId(@NonNull Long id) {this.id = id;}

编译后

    public void setId(@NonNull Long id) {if (id == null) {throw new NullPointerException("id");} else {this.id = id;}}

@RequiredArgsConstructor

@RequiredArgsConstructor
public class Demo {@NonNullprivate Long id;private String name;
}

编译后

public class Demo {@NonNullprivate Long id;private String name;public Demo(@NonNull Long id) {if (id == null) {throw new NullPointerException("id");} else {this.id = id;}}
}

@NoArgsConstructor @AllArgsConstructor

@NoArgsConstructor
@AllArgsConstructor
public class Demo {@NonNullprivate Long id;private String name;
}

编译后

public class Demo {@NonNullprivate Long id;private String name;public Demo() {}public Demo(@NonNull Long id, String name) {if (id == null) {throw new NullPointerException("id");} else {this.id = id;this.name = name;}}
}

@Builder

单独使用时自动生成全参的构造器,没有默认构造器了,想要有非全参构造器必须与@AllArgsConstructor注解同时使用,然后手动或注解添加,否则将无法编译

@Builder
public class Demo {@NonNullprivate Long id;private String name;
}

编译后

public class Demo {@NonNullprivate Long id;private String name;Demo(@NonNull Long id, String name) {if (id == null) {throw new NullPointerException("id");} else {this.id = id;this.name = name;}}public static Demo.DemoBuilder builder() {return new Demo.DemoBuilder();}public static class DemoBuilder {private Long id;private String name;DemoBuilder() {}public Demo.DemoBuilder id(Long id) {this.id = id;return this;}public Demo.DemoBuilder name(String name) {this.name = name;return this;}public Demo build() {return new Demo(this.id, this.name);}public String toString() {return "Demo.DemoBuilder(id=" + this.id + ", name=" + this.name + ")";}}
}

@Cleanup

自动调用close()

     public static void main(String[] args) throws FileNotFoundException,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);}}

编译后

    public static void main(String[] args) throws FileNotFoundException, IOException {FileInputStream in = new FileInputStream(args[0]);try {FileOutputStream out = new FileOutputStream(args[1]);try {byte[] b = new byte[10000];while(true) {int r = in.read(b);if (r == -1) {return;}out.write(b, 0, r);}} finally {if (Collections.singletonList(out).get(0) != null) {out.close();}}} finally {if (Collections.singletonList(in).get(0) != null) {in.close();}}}

@Synchronized

给方法加锁

public class Demo {private final Object writeLock = new Object();@Synchronizedpublic static void method1(){System.out.println("method1");}@Synchronizedpublic void method2(){System.out.println("method1");}@Synchronized("writeLock")public void method3(){System.out.println("method1");}
}

编译后

public class Demo {private static final Object $LOCK = new Object[0];private final Object $lock = new Object[0];private final Object writeLock = new Object();public Demo() {}public static void method1() {Object var0 = $LOCK;synchronized($LOCK) {System.out.println("method1");}}public void method2() {Object var1 = this.$lock;synchronized(this.$lock) {System.out.println("method1");}}public void method3() {Object var1 = this.writeLock;synchronized(this.writeLock) {System.out.println("method1");}}
}

@Wither

给final赋值,必须有全参的构造器

@AllArgsConstructor
public class Demo {@Witherprivate final int number;}

编译后

public class Demo {private final int number;public Demo(int number) {this.number = number;}public Demo withNumber(int number) {return this.number == number ? this : new Demo(number);}
}

@Log4j2@Log@Log4j@CommonsLog@Slf4j@XSLF4j

@Log4j2
public class Demo {public static void main(String[] args) {log.error("error");}}

编译后

public class Demo {private static final Logger log = LogManager.getLogger(Demo.class);public Demo() {}public static void main(String[] args) {log.error("error");}
}

lombok注解的使用相关推荐

  1. 【lombok】使用lombok注解,在代码编写过程中可以调用到get/set方法,但是在编译的时候无法通过,提示找不到get/set方法...

    错误如题:使用lombok注解,在代码编写过程中可以调用到get/set方法,但是在编译的时候无法通过,提示找不到get/set方法 报错如下: 解决方法: 1.首先查看你的lombok插件是否下载安 ...

  2. 解决IDEA使用lombok注解无效,@Data不生效问题

    解决IDEA使用lombok注解无效,@Data不生效问题 参考文章: (1)解决IDEA使用lombok注解无效,@Data不生效问题 (2)https://www.cnblogs.com/houz ...

  3. SpringBoot +Lombok注解精华篇

    SpringBoot 必知必会 核心精粹_注解Lombok 文章目录 Lombok注解 应用场景 @Data Getter.Setter.RequiredArgsConstructor.ToStrin ...

  4. eclipse中Lombok注解无效

    问题现象:eclipse中使用lombok的@Date,引用get方法时,报错. 解决方案: 在lombok官网(https://www.projectlombok.org/download)下载,或 ...

  5. Lombok注解使用详解

    本文来说下Lombok注解使用 文章目录 lombok的常用注解 @Builder注解 @Accessors注解 本文小结 lombok的常用注解 lombok的常用注解 @Getter和@Sette ...

  6. idea2020.1使用Lombok注解,点击运行项目提示找不到get,set方法?

    idea2020.1使用Lombok注解,点击运行项目提示找不到get,set方法? javabean: @Data public class ReponseData {     private Ma ...

  7. idea解决lombok注解失效问题

    idea解决lombok注解失效问题 参考文章: (1)idea解决lombok注解失效问题 (2)https://www.cnblogs.com/xue3511/articles/12151612. ...

  8. 注解整理 - 元注解,lombok注解,spring 注解,springboot注解,springmvc注解

    注解大全 java四种元注解 @Target @Retention @Documented @Inherited lombok注解 lombok注解为什么强大 lombok注解的使用方式 1.安装lo ...

  9. 使用Arthas热更新时,lombok注解导致mc命令编译失败

    看Arthas文档,其中代码热更新vb.net教程功能很吸引人,用文档的demo项目热更新,没有c#教程任何问题. 但是,用公司项目的代码一试,mc编译时报错. 网上查了很多博客,有python基础教 ...

  10. eclipse使用lombok注解不起作用

    原因 因为在pom.xml中使用注解的形式,所以需要导入lombok.jar包,如果用maven的话,需在pom.xml中的标签中加入: <dependency><groupId&g ...

最新文章

  1. 一步一步学Linq to sql(一):预备知识
  2. 解决spring-boot-maven-plugin not found爆红
  3. iOS---iPad开发及iPad特有的特技
  4. Linux上搭建伪集群 Hadoop3.1
  5. 有一只经过训练的蜜蜂……
  6. SpringBoot使用@Scheduled创建定时任务
  7. 深入浅出裸测之道---单元测试的单元化
  8. window创建计划自动启动服务器,WINDOWS2008计划任务无法启动
  9. 杭电 1272 并查集判断环
  10. # 数学基础task 01 函数极限与连续性
  11. 基于MATLAB-GUI数字图像的水果边缘检测
  12. java 校验图片的大小、尺寸、比例
  13. word python插件_用 Python 自动生成 Word 文档
  14. Jmeter定时器之吞吐量整形定时器jp@gc Throughput Shaping Timer
  15. 分享数百个 HT 工业互联网 2D 3D 可视化应用案例
  16. 流媒体服务器FFMPEG转码流摄像头取流
  17. 如何理解什么是PHP接口,如何应用PHP接口?
  18. 如何将论文图表做得漂亮?
  19. 效用最大化准则:离散选择模型的核心(Probit模型上篇)——离散选择模型之七
  20. 华为ensp保存网络设备配置和导出导入网络设备

热门文章

  1. C++代码秀(你干嘛!!!哎呦!!!)
  2. LTE学习笔记:物理层
  3. Java 小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码
  4. 今民生:上海天伦医院告诫患者小心黑心医托?
  5. 013. 跟郑军老师再聊科幻
  6. 35、python并发编程之多线程(理论篇)
  7. 求伯君—— 一个你必须知道的程序员
  8. 克鲁斯卡尔算法_修路问题
  9. cortex a7 a53_金杯海星A7面包车报价最小商用车2.98万值得拥有
  10. 美团点评武汉场后台开发