私は次のクラスを持っています:
public class Project {
private int id;
private String name;
public Project(int id, String name) {
if(name == null ){
throw new NullPointerException("Name can't be null");
}
if(id == 0 ){
throw new IllegalArgumentException("id can't be zero");
}
this.name = name;
this.id = id;
}
private Project(){}
public int getId() {
return id;
}
public void setId(int id) {
if(id == 0 ){
throw new IllegalArgumentException("id can't be zero");
}
this.id = id;
}
public String getName()
return name;
}
public void setName(String name) {
if(name == null ){
throw new NullPointerException("Name can't be null");
}
this.name = name;
}
}
setName と setId がそのフィールドの同じ検証をコンストラクターと共有していることに気付いた場合。この冗長なコードは将来的に問題を引き起こす可能性がありますか? . プライベート メソッドを使用してチェックを行い、それをコンストラクターとセッターの間で共有する必要があります。
注:これが、コンストラクターでセッターを使用しない理由です。https://stackoverflow.com/a/4893604/302707