版权声明:dream_on_sakura_rain https://blog.csdn.net/qq_32112175/article/details/82700115
Lombok
一个省去传统的get set方法的好用插件 其实功能也不全部都只是get set 只是使用这个东西的特征就是这个
所有的东西都是看着很厉害,挖一挖我去真牛逼,最后哎太复杂会用就行
有兴趣的可以直接跳过这篇文章去看官方的介绍,那里更加详细,本文也是在参照官网完成的:https://www.projectlombok.org/
插件下载可以在找到
-
依赖
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>0.9.2</version> </dependency> </dependencies> <repositories> <repository> <id>projectlombok.org</id> <url>http://projectlombok.org/mavenrepo</url> </repository> </repositories>
展示一下之前的使用的方式
package com.sakura.domain; /** * @author licunzhi * @desc 测试@Data:不需要写set get方法 * @date 2018-09-10 */ public class PersonData { private String name; private Integer age; private String address; private Double salary; public PersonData(String name, Integer age, String address, Double salary) { this.name = name; this.age = age; this.address = address; this.salary = salary; } public PersonData() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } @Override public String toString() { return "PersonData{" + "name='" + name + '\'' + ", age=" + age + ", address='" + address + '\'' + ", salary=" + salary + '}'; } }
-
可以使用的注解
@Getter and @Setter 给指定的属性增加get或者是set方法的注解
@NonNull 为空校验 指定属性字段不能为空,否则会出现空指针的异常问题
@ToString 生成toString方法,callsper默认是false的 是否按照父类的方式打印, exclude排除在外的字段
单个和多个排除在外的写法//@ToString(exclude = {"age", "name"}, callSuper = true) @ToString(exclude = "name", callSuper = true)
@EqualsAndHashCode equals方法以及hashCode的计算方式
@Data@ToString
,@EqualsAndHashCode
,@Getter
and@Setter
. 组合提供这些方法
@Cleanup 进行自动资源管理,修饰在变之前使用完成之后自动关闭资源(文件流)@Cleanup ByteArrayOutputStream baos = new ByteArrayOutputStream();
@Synchronized 使用在方法上面,方法自动获取锁
@SneakyThrows 自动抛受检异常,而无需显式在方法上使用throws语句 -
官网
虽然介绍了很多的使用方式,但是估计大家使用的最多的还是@Data 一步到位
所以有些注解还是观看官方介绍的比较舒服,而且官方介绍的已经足够细致,并且有很多典例可以参考和使用
地址在:http://jnb.ociweb.com/jnb/jnbJan2010.html
欢迎访问交流群:589780530
博主交流:2718272293
邮箱:[email protected] [email protected]
github: https://github.com/licunzhi