Date setter メソッドを安全にする方法。以下のアプローチは正しいですか?
public void setBirthDate(Date birthDate) {
birthDate = (Date)birthDate.clone();
}
ありがとうジャイ
を使用した方がよいでしょうthis.birthDate = new Date (birthDate.getTime ())
。この場合、何が起こるかは確実にわかります。
Date
はオブジェクト タイプですが、変更可能です。つまり、date
オブジェクトが作成されると、変更できます。クラスはオブジェクト クラスからDate
実装されます。clone()
そのため、クローンを使用してセッター メソッドを作成することをお勧めします。
public void setBirthDate(Date birthDate) {
this.birthDate = (Date) birthDate.clone();
}
public Date getBirthDate() {
return (Date) this.birthDate.clone();
}