lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok
在代码中我们可以只加上标签@Data 而不用get,set方法;
val : 和 scala 中 val 同名, 可以在运行时确定类型;
@NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)
@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法
@Getter/@Setter : 注解在类上, 为类提供读写属性
@Getter(lazy=true) :
@ToString : 注解在类上, 为类提供 toString() 方法
@EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数
构造函数
@AllArgsConstructor
会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验,
全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。
@NoArgsConstructor
无参构造函数
@RequiredArgsConstructor
会生成一个包含常量(final),和标识了@NotNull的变量 的构造方法。
@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
@Value :
@Builder : 注解在类上, 为类提供一个内部的 Builder
@SneakThrows :
@Synchronized : 注解在方法上, 为方法提供同步锁
@Log :
@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
上面一些注解是由包含关系的, 看需要什么方法就增加什么注解,@Log4j 和 @Slf4j 注解作用不小, 用在各层都可以,方便打 log。
也可以查看官网 [ 官网 ]
简易例子:[ 只是用了@Data注解 ]


public @Data class Student {
private String stuId;
private String stuName;
private String stuNum;
private String stuSex;
}


虽然说,eclipse 的快捷键生成这些代码会很快,但是知道总比不知道的好,万一别人用了,你看不懂别人的代码呢?那就不面子丢大了,还只是个实体类而已。
我觉得最重要的是,代码行数少了很多,简洁的代码谁不喜欢呢?
还有一点, 使用这个 lombok 需要安装 lombok 插件。
主要的作用提高代码的简洁
@Data
去除一些重复的get,set方法,
1.需要官网下载jar包
https://projectlombok.org/download
2运行jar包,添加到eclipse目录下
点击install/update按钮,即可安装完成
检查eclipse.ini文件最后是否添加了jar包
3然后重启一下eclipse,
4最重要的是需要在maven中引入
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
比较一下:
原来的代码
public class EnergySource {
private String energySourceId;
private String fuel;
private String industrialWater;
private String gas;
private String naturlGas;
private String steam;
private String oxygenNitrogen;
private String compressedAir;
private String dynamicMedium;
public String getEnergySourceId() {
return energySourceId;
}
public String getFuel() {
return fuel;
}
public String getIndustrialWater() {
return industrialWater;
}
public String getGas() {
return gas;
}
public String getNaturlGas() {
return naturlGas;
}
public String getSteam() {
return steam;
}
public String getOxygenNitrogen() {
return oxygenNitrogen;
}
public String getCompressedAir() {
return compressedAir;
}
public String getDynamicMedium() {
return dynamicMedium;
}
public void setEnergySourceId(String energySourceId) {
this.energySourceId = energySourceId;
}
public void setFuel(String fuel) {
this.fuel = fuel;
}
public void setIndustrialWater(String industrialWater) {
this.industrialWater = industrialWater;
}
public void setGas(String gas) {
this.gas = gas;
}
public void setNaturlGas(String naturlGas) {
this.naturlGas = naturlGas;
}
public void setSteam(String steam) {
this.steam = steam;
}
public void setOxygenNitrogen(String oxygenNitrogen) {
this.oxygenNitrogen = oxygenNitrogen;
}
public void setCompressedAir(String compressedAir) {
this.compressedAir = compressedAir;
}
public void setDynamicMedium(String dynamicMedium) {
this.dynamicMedium = dynamicMedium;
}
@Override
public String toString() {
return "EnergySource [energySourceId=" + energySourceId + ", fuel=" + fuel + ", industrialWater="
+ industrialWater + ", gas=" + gas + ", naturlGas=" + naturlGas + ", steam=" + steam
+ ", oxygenNitrogen=" + oxygenNitrogen + ", compressedAir=" + compressedAir + ", dynamicMedium="
+ dynamicMedium + "]";
}
}
加注解的代码
import lombok.Data;
@Data
public class EnergySource {
private String energySourceId;
private String fuel;
private String industrialWater;
private String gas;
private String naturlGas;
private String steam;
private String oxygenNitrogen;
private String compressedAir;
private String dynamicMedium;
}
还有一些提供的注解:
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok的更多相关文章
- lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok
在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null ...
- lombok常用注解@Data@AllArgsConstructor@NoArgsConstructor@Builder@Accessors
原贴:https://blog.csdn.net/ChenXvYuan_001/article/details/84961992 https://blog.csdn.net/weixin_382293 ...
- SQL SERVER 遇到Unable to find the requested .Net Framework Data Provider. It may not be installed. (System.Data)
今天新装的SQLSERVER 2012 EXPRESS 用于客户端程序 安装完成后打开登陆SQLSERVER 一切正常 当查看表定义.视图结构时,弹出一下内容 Unable to find the r ...
- 关于Jquery中ajax方法data参数用法的总结
data 发送到服务器的数据.将自动转换为请求字符串格式.GET 请求中将附加在 URL 后.查看 processData 选项说明以禁止此自动转换.必须为 Key/Value 格式.如果为数组,jQ ...
- System.Data.SQLite.dll控件常规安装方法
原文地址:http://www.jb51.net/dll/System.Data.SQLite.dll.html 文件运行必须安装 Microsoft Visual C++ 2010 SP1 Re ...
- CodeSimth - .Net Framework Data Provider 可能没有安装。解决方法
今天想使用CodeSimth生成一个sqlite数据库的模板.当添加添加数据库的时候发现: .Net Framework Data Provider 可能没有安装. 下面找到官方的文档说明: SQLi ...
- 微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient 以及Oracle 的各种连接方法
这是微软官方 ADO.NET Team Blog 去年就公布的消息: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracl ...
- oracle中如何对字符串进行去除空格的方法
oracle中如何对字符串进行去除空格的方法 今天学习了一下oracle中如何对字符串进行去除空格的方法,这里总结一下.了解到的方法主要有两种:Trim函数以及Replace函数.下面我详细的介绍一下 ...
- 17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files
17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files 如果数据库是大的, 复制raw 数据文 ...
随机推荐
- P6295-有标号 DAG 计数【多项式求逆,多项式ln】
正题 题目链接:https://www.luogu.com.cn/problem/P6295 题目大意 求所有\(n\)个点的弱联通\(DAG\)数量. \(1\leq n\leq 10^5\) 解题 ...
- python读Excel方法(xlrd)
在我们做平常工作或自动化测试中都会遇到操作excel,Python处理exc相当顺手,如何通过python操作excel,当然python操作excel的库有很多,比如pandas,xlwt/xlrd ...
- mybatis plus 一对多,多表联查的使用小记
阅读本博文需要有基础的mybatis以及mybatis plus知识,如果没有建议您了解相关的内容 本项目使用的是springboot构建的,数据库字段命名不严谨仅做演示测试使用,本文不做相关源码的解 ...
- NOIP模拟73
T1 小L的疑惑 解题思路 第一眼不是正解,又是 bitset 优化可以得到的 60pts 的部分分. 打着打着突然发现这个东西好像和之前做过的某个题有一些相似,试着打了一下. 然后样例过了,然后对拍 ...
- 对于caffe程序中出现的Unknown database backend问题的报错怎么办?
在预处理器中添加USE_LMDB,因为caffe需要一种数据输入格式 这样,在db.cpp中#ifdef USE_LMDB就会变亮,显示使用的数据格式为LMDB
- The Data Way Vol.5|这里有一场资本与开源的 battle
关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...
- CF49E Common ancestor(dp+dp+dp)
纪念卡常把自己卡死的一次自闭模拟赛 QWQ 一开始看这个题,以为是个图论,仔细一想,貌似可以直接dp啊. 首先,因为规则只有从两个变为1个,貌似可以用类似区间\(dp\)的方式来\(check\)一段 ...
- Linux Manual
man 命令用来访问存储在Linux系统上的手册页面.在想要查找的工具的名称前面输入man命 令,就可以找到那个工具相应的手册条目. 手册页不是唯一的参考资料.还有另一种叫作 info 页面的信息.可 ...
- Head First Python 代码和实例下载
http://python.itcarlow.ie/resources.html
- FastAPI 学习之路(四十六)WebSockets(二)
上一篇文章,我们分享了WebSockets一些入门的,我们这节课,在原来的基础上,对于讲解的进行一个演示.我们最后分享了依赖token等.首先我们对上次的代码进行调整. 我们之前分享FastAPI 学 ...