如何在eclipse中为可变对象生成getter和setter?

时间:2015-02-14 10:42:44

标签: java eclipse

我最近发现的一个声纳问题是 "恶意代码漏洞 - 可能通过引用可变对象"

来公开内部表示

例如,理想情况下,Eclipse应生成日期的setter,如下所示

public void setBillDate(Date billDate) {
    this.billDate = (Date)billDate.clone();
}

如何强制Eclipse生成这样的代码?

1 个答案:

答案 0 :(得分:0)

Window -> Preferences -> Java -> Code Style -> Code Templates 

启用项目特定设置

你会看到“Setter Body”,编辑:

${field} = ${param};

您需要的代码可能写成

try {
        ${field} = ${param}.getClass().cast( ${param}.clone() );
} catch( CloneNotSupportedException cnse ){
     // whatever
}

我承认我不知道参数类是否有模板变量。调查...