Java 如何制作安全的日期设置器方法
如何使日期设置器方法安全。下面的方法正确吗Java 如何制作安全的日期设置器方法,java,date,Java,Date,如何使日期设置器方法安全。下面的方法正确吗 public void setBirthDate(Date birthDate) { birthDate = (Date)birthDate.clone(); } 谢谢 JaiDate是一种对象类型,但它是可变的,这意味着一旦创建了Date对象,就可以对其进行更改日期类从对象类实现克隆()。所以,最好使用克隆创建setter方法 public void setBirthDate(Date birthDate) { this
public void setBirthDate(Date birthDate) {
birthDate = (Date)birthDate.clone();
}
谢谢
Jai
Date
是一种对象类型,但它是可变的,这意味着一旦创建了Date
对象,就可以对其进行更改<代码>日期类从对象类实现克隆()。所以,最好使用克隆创建setter方法
public void setBirthDate(Date birthDate) {
this.birthDate = (Date) birthDate.clone();
}
public Date getBirthDate() {
return (Date) this.birthDate.clone();
}
您最好使用this.birthDate=newdate(birthDate.getTime())
。在这种情况下,您肯定知道会发生什么。这里有一个NullPointerException
正在等待发生。我宁愿使用新日期(birthDate.getTime())
,因为我不太喜欢clone()
。但是@defaultlocale是对的:NPE就在拐角处,等待着罢工……你称之为安全吗?你只是想要一份深度拷贝?那么这是可以的,但您必须检查null。我建议将其不可变的DateTime
替换为标准的javaDate
类。您通常应该完全避免clone()
,请参见此处:不可能…因为没有日期(new Date())constructor@Jai对我注意到了它,因此改为新日期(birthDate.getTime())
。