我在我的项目中实现了现场错误,并且由于以下代码提交的DATE不断给我一个错误。
我需要做的是排除为createTime和UpdateTime字段生成getter和setter。因为我要克隆日期对象。
@Getter
@Setter
@MappedSuperclass
public class BaseErrorMessageDto implements Serializable {
@Getter(AccessLevel.PRIVATE)
private Date createTime;
@Getter(AccessLevel.PRIVATE)
private Date updateTime;
public Date getCreateTime() {
return (Date) createTime.clone();
}
public Date getUpdateTime() {
return (Date) updateTime.clone();
}
}
给出以下错误
可以通过引入对可变对象的引用来公开内部表示形式此代码将对外部可变对象的引用存储到该对象的内部表示中。如果实例是由不受信任的代码访问的,并且对可变对象的未经检查的更改会损害安全性或其他重要属性,那么您将需要做一些不同的事情。在许多情况下,存储对象的副本是更好的方法。
我需要做的是排除为createTime和UpdateTime字段生成getter和setter。
我已经手动添加了getter和setter,并如下克隆对象。然后,Spot bug警告消失。
public Date getCreateTime() {
return (Date) createTime.clone();
}
public Date getUpdateTime() {
return (Date) updateTime.clone();
}
public void setCreateTime(Date createTime) {
this.createTime = (Date) createTime.clone();
}
public void setUpdateTime(Date updateTime) {
this.updateTime = (Date) updateTime.clone();
}