在代码中我们可以只加上标签@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:///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:注解在类上;为类提供一个全参的构造方法
来源:https://www./content-4-804651.html
|