在编写JavaBean时,如果类内部的成员变量为一个对象类型,用FindBugs扫描后可能会产生如下警告:
M V EI: com.digu.api.db.model.HuotuSnsUserModel.getAddDate() may expose internal representation by returning HuotuSnsUserModel.addDate
public class StudentBean
{
private Date addDate;
public Date getAddDate()
{
return addDate;
}
public void setAddDate(Date addDate)
{
this.addDate = addDate;
}
}
为消除警告,可以进行如下修改:
public class StudentBean
{
private Date addDate;
public Date getAddDate()
{
if (addDate == null)
{
return null;
}
return (Date)addDate.clone();
}
public void setAddDate(Date addDate)
{
if (addDate == null)
{
this.addDate = null;
} else {
this.addDate = (Date)addDate.clone();
}
}
}
测试代码:
public static void main(String[] args) throws InterruptedException
{
StudentBean model = new StudentBean();
Date date = new Date();
model.setAddDate(date);
System.out.println(model.getAddDate().getTime());
Thread.sleep(2000);
date.setTime(new Date().getTime());
System.out.println(model.getAddDate().getTime());
}
欢迎加入JAVA技术交流群 328073753