Java使用lombok简化bean的开发
2021/7/2 20:24:40
本文主要是介绍Java使用lombok简化bean的开发,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
安装lombok
引入jar包
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency>
在idea中安装lombok插件。
使用lombok
lombok会根据所添加的注解,在编译期自动生成Bean类的通用代码(构造器,Getter,Setter等)
@Getter
与 @Setter
生成Getter与Setter方法
@ToString
自动重写toString()方法
@EqualsAndHashCode
自动重写equals()与hashCode()方法
@NonNull
被注解的字段不能为null
@RequiredArgsConstructor
自动生成需要的构造器:默认生成无参构造器;如果有字段被 @NonNull
注解,则生成非空字段构造器
例如
@RequiredArgsConstructor public class User { @NonNull private String username; @NonNull private String password; private int age; }
将生成以下构造器
public User(@NonNull String username,@NonNull String password) { this.username = username; this.password = password; }
@NoArgsConstructor
自动生成无参构造器
@AllArgsConstructor
自动生成全参构造器
@Data
最方便的注解,等价与同时使用了 @Getter
@Setter
@RequiredArgsConstructor
@ToString
@EqualsAndHashCod
这些注解
@Cleanup
自动关闭资源
public void f() { try { @Cleanup ByteArrayOutputStream baos = new ByteArrayOutputStream(); baos.write(new byte[]{'Y','e','s'}); System.out.println(baos.toString()); } catch(IOException e) { e.printStackTrace(); } }
等价于
public void f() { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { baos.write(new byte[]{'Y','e','s'}); System.out.println(baos.toString()); } finally { baos.close(); } } catch(IOException e) { e.printStackTrace(); } }
@Synchronized
自动将方法中的代码转换为同步代码块
@Synchronized public void f() { // TODO }
等价于
private final java.lang.Object $lock = new java.lang.Object[0]; public void f() { synchronized($lock) { // TODO } }
@SneakyThrows
用来注解构造器和方法,可以不用手动声明方法声明上的throws语句
@SneakyThrows public void f() { throw new IllegalAccessException(); }
@Slf4j
会自动创建一个叫log的Logger对象,等价于以下代码
private static final Logger log= LoggerFactory.getLogger(User.class);
使用lombok注意事项
如果多个Bean类互相依赖,使用Lombok会循环引用,导致栈溢出。这时,需要手动实现相关方法。
这篇关于Java使用lombok简化bean的开发的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25JAVA语音识别项目项目实战入门教程
- 2024-11-25JAVA云原生项目实战入门教程
- 2024-11-25Java语音识别项目入门:新手必读指南
- 2024-11-25Java语音识别项目入门:轻松开始你的第一个语音识别项目
- 2024-11-25Java语音识别项目入门详解
- 2024-11-25Java语音识别项目教程:从零开始的详细指南
- 2024-11-25JAVA语音识别项目教程:初学者指南
- 2024-11-25Java语音识别项目教程:初学者指南
- 2024-11-25JAVA云原生入门:新手指南与基础教程
- 2024-11-25Java云原生入门:从零开始的全面指南