lombok标签之@Data@AllArgsConstructor@@NoArgsCons。。
。
在代码中我们可以只加上标签@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") lipse.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包
/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) {
log4j与log4j2}
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) {
}
public void setCompressedAir(String compressedAir) {
thispressedAir = 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:注解在类上;为类提供⼀个全参的构造⽅法参考:
参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论