急,java菜鸟请教各位大侠一个问题~~

isfirst 2014-05-21 01:20:42
写了一段java代码,然后用静态检查工具做了检查,报错了,不知道什么原因,红色的是报错信息,意思是将引用值赋值给可变对象,请教各位大侠错误原因和如何修改~~
public class EPGSyncLabel {

private String country_id;

private Date last_sync_time;

private int total_num;

private int is_auto_sync;

private String domain;



public String getCountry_id() {

return country_id;

}



public void setCountry_id(String country_id) {

this.country_id = country_id;

}



public Date getLast_sync_time() {

CID 268268: EI: Exposes internal representation (FB.EI_EXPOSE_REP) [select defect]

return last_sync_time;

}



public void setLast_sync_time(Date last_sync_time) {

CID 268273: EI2: Storing reference to mutable object (FB.EI_EXPOSE_REP2)At (1): com.samsung.awaken.mywork.pojo.EPGSyncLabel.setLast_sync_time(Date) may expose internal representation by storing an externally mutable object into EPGSyncLabel.last_sync_time

this.last_sync_time = last_sync_time;


}
...全文
152 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫炎圣骑 2014-05-21
  • 打赏
  • 举报
回复
分析: 上述findbugs的bug常出现在JavaBean中的setXXX(Object)、getXXX()、构造方法等中,原因都是一个,类似数组、Date等和其他所有java对象一样传递的都是引用,当你外部改变了这些引用值的时候,显然会影响使用这些引用的JavaBean。 解决: 所有的对象型如数组、Date等都人为采用传值(并增加空逻辑判断)。 Java代码 收藏代码 public Date getDate() { if(date == null) { return null; } return (Date) date.clone(); } public void setDate(Date date) { if(date == null) { this.date = null; }else { this.date = (Date) date.clone(); } }

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧