java关于lombok(包括父类参数)
使用说明
要使用lombok,必须是用插件,目前我所知道能用的工具是idea。具体安装插件方式如下图:
使用方式
如果是使用maven的直接加入依赖就可以了,如果不是就在网上找这个jar的地址下载,这里不错说明(现在基本上都还是用maven来的的吧)。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
然后在bean对象中加入注释就可以了,如下所示
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ColumnBO {
/**
* 列名
*/
private String columnName;
/**
* 转换后的列名
*/
private String columnNameTrans;
/**
* 数据类型
*/
private String dataType;
/**
* 转换后的数据类型
*/
private String dataTypeTrans;
/**
* 注释
*/
private String columnComment;
}
打开structure就能看到get、set、三个基本方法的重写和构造方法了
注释类型
官方所有的注释:https://www.projectlombok.org/features/all
@NonNull
参数不能为空,不然会空指针异常
@Data(常用)
=@ToString+@EqualsAndHashCode+@Getter+@Setter
@NoArgsConstructor(常用)/@RequiredArgsConstructor(常用)/@AllArgsConstructor(常用)
无参构造、必填参数构造(@NonNull)、全参构造;生成构造函数功能较弱,有些时候需要自己写一些参数的构造函数,构造函数使用注释和自己写一些参数构造一起使用,有时候会启动不了。这个问题还没有找到原因。
@Getter/@Setter/@Getter(lazy=true)
自动创建get、set;lazy要使用此特性,请创建一个私有的final变量,用运行开销较大的表达式初始化它,并使用@Getter(lazy=true)注释字段。该字段将对代码的其余部分隐藏,并且在首次调用getter时,表达式的计算不会超过一次。
@ToString/@EqualsAndHashCode
自动创建tostring、equals、hashcode方法
下面几个参数还没有用过,等有空研究下
@Cleanup
@Value
@Builder
@SneakyThrows
@Synchronized
@Log
优缺点
优点:bean对象更加简洁,使用方便了
缺点:可读性下降,构造方式不够灵活
问题,父类参数
需要加上参数:callSuper = true
例如:@ToString(callSuper = true)