More Related Content
Similar to Lombokのススメ (20)
Lombokのススメ
- 5. Javaの冗長コード (1つ目)
フィールドはprivate宣言が原則なので、
そのフィールドにアクセスするsetter/getterを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integer productCode;
/** 商品名 */
private String productName;
/** 商品コードの取得 */
public Integer getProductCode() {
return productCode
}
/** 商品コードの設定 */
public void setProductCode(Integer productCode ) {
this.productCode = productCode
}
}
フィールドごとに
setter/getterを書く
- 6. Javaの冗長コード (2つ目)
コンストラクタを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integer productCode;
/** 商品名 */
private String productName;
/** デフォルトコンストラクタ */
public Product() {
}
/** フィールド初期化をするコンストラクタ */
public Product(Integer productCode, String productName) {
this.productCode = productCode;
this.productName = productName;
}
}
デフォルトコンストラクタ以外に、
フィールド初期化用コンストラクタを書く
- 7. Javaの冗長コード (3つ目)
クラスの文字列表現を返すtoStringメソッドを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integer productCode;
/** 商品名 */
private String productName;
/** クラスの文字列表現 */
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(“productCode:”).append(productCode);
sb.append(“ productName:”).append(productName);
return sb.toString();
}
}
フィールドの内容を
文字列にして返却する
- 8. Javaの冗長コード (4つ目)
各フィールドが等価かを返すequalsメソッドを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integer productCode;
/** 商品名 */
private String productName;
/** 等価かを返す */
public boolean equals(Object o) {
if (!(o instanceof Product)) {
return false;
}
Product p = (Product)o;
if ((this.productCode != null && p.productCode == null) ||
(this.productCode == null && p.productCode != null) ||
・・・ 以下略
同じクラスかのチェック
フィールド1つずつ、
nullチェック、値チェックをする