6. @Data
public class Sample{
private Integer value1;
private Integer value2;
public Integer getValue1(){
}
public void setValue1 (Integer value1) {
}
public Integer getValue2(){
}
public void setValue2 (Integer value2) {
}
public boolean equals (Object obj) {
}
public int hashCode () {
}
public String toString () {
}
}
@Data
public class Sample{
private Integer value1;
private Integer value2;
}
・フィールドはprivateが原則の為、
アクセサが必要
・toString、hashCode、equalsもほ
ぼ同じ内容を毎度書く
・見通しが悪くなる
・@Dataを使用する事で左のコー
ドと同等のものを以下のコード量
で実現可能
7. @Value
public class Sample{
private final Integer value1;
private final Integer value2;
public sample(Integer value1, Integer
value2){
}
public Integer getValue1(){
}
public Integer getValue2(){
}
public boolean equals (Object obj) {
}
public int hashCode () {
}
public String toString () {
}
}
@Value
public class Sample{
Integer value1;
Integer value2;
}
・イミュータブルなクラスを書く
場合、getterメソッドと全フィー
ルドを引数としたコンストラクタ
を書く必要があるが、これも毎度
同じ
・@Valueを使用する事で左のコー
ドと同等のものを以下のコード量
で実現可能
・private final は自動的に付与さ
れる為、漏れがなくなる。