简体   繁体   English

如何在蚀中为可变对象生成获取器和设置器?

[英]How to generate getters and setters in eclipse for mutable objects?

one of the sonar issue that I recently found was that "Malicious code vulnerability - May expose internal representation by incorporating reference to mutable object" 我最近发现的声纳问题之一是“恶意代码漏洞-通过合并对可变对象的引用可能暴露内部表示形式”

For example ideally Eclipse should generate setter for date like following 例如,理想情况下,Eclipse应该为日期生成setter,如下所示

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

How can I force Eclipse to generate code like this? 如何强制Eclipse生成这样的代码?

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

Enable project specific settings 启用项目特定设置

You'll see "Setter Body", Edit: 您会看到“ Setter Body”,编辑:

${field} = ${param};

The code you need might be written as 您需要的代码可能写为

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

I admit that I don't know whether there is a template variable for the parameter class. 我承认我不知道参数类是否有模板变量。 Investigating... 调查...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM