Lombok 插件 :
Project Lombok 是一个 java 库,它可以自动插入你的编辑器并构建工具。
简单来说:就是不用再写 getter 或 equals 方法。
如下图:
@Data
最常用的@Data,它结合了 @ToString,@EqualsAndHashCode , @Getter 和 @Setter 注解的功能。
@ToString
toString() 的方法输出,默认,所有非静态字段都会输出。
@EqualsAndHashCode
@EqualsAndHashCode(callSuper=true,exclude={"address","city","state","zip"})
public class Person extends SentientBeing {
enum Gender { Male, Female }
@NonNull private String name;
@NonNull private Gender gender;
private String ssn;
private String address;
private String city;
private String state;
private String zip;
}
相当于 ==>>>
public class Person extends SentientBeing {
enum Gender {
/*public static final*/ Male /* = new Gender() */,
/*public static final*/ Female /* = new Gender() */;
}
@NonNull
private String name;
@NonNull
private Gender gender;
private String ssn;
private String address;
private String city;
private String state;
private String zip;
@java.lang.Override
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (o == null) return false;
if (o.getClass() != this.getClass()) return false;
if (!super.equals(o)) return false;
final Person other = (Person)o;
if (this.name == null ? other.name != null : !this.name.equals(other.name)) return false;
if (this.gender == null ? other.gender != null : !this.gender.equals(other.gender)) return false;
if (this.ssn == null ? other.ssn != null : !this.ssn.equals(other.ssn)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = result * PRIME + super.hashCode();
result = result * PRIME + (this.name == null ? 0 : this.name.hashCode());
result = result * PRIME + (this.gender == null ? 0 : this.gender.hashCode());
result = result * PRIME + (this.ssn == null ? 0 : this.ssn.hashCode());
return result;
}
}
@NonNull
该注释用于指示需要 对成员进行null检查,如果为空将报 NullException
Alibaba Java Coding Guidelines plugin
阿里巴巴Java开发指导插件。
该插件可以高效的扫描出项目的 代码规范 然后自我选择性修改,有的也会自动修改,是一个非常方便的插件。
参考资料:http://jnb.ociweb.com/jnb/jnbJan2010.html