【问题标题】:How to generate getters and setters in eclipse for mutable objects?如何在eclipse中为可变对象生成getter和setter?
【发布时间】:2015-02-14 10:42:43
【问题描述】:

我最近发现的一个声纳问题是 “恶意代码漏洞 - 可能通过合并对可变对象的引用来暴露内部表示”

例如,理想情况下,Eclipse 应该为日期生成设置器,如下所示

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

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

【问题讨论】:

    标签: java eclipse


    【解决方案1】:
    Window -> Preferences -> Java -> Code Style -> Code Templates 
    

    启用项目特定设置

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

    ${field} = ${param};
    

    你需要的代码可以写成

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

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

    【讨论】:

    • 我以为你知道这一点,根据你的问题。 - 请注意,这将是所有人的代码 - 即使克隆受到保护或参数不是对象时也是如此。所以你必须手动编写其他表单。
    • 感谢您的及时回复。也从我这边调查:-)
    • 模板编辑器为“插入变量”提供的变量非常少。没有像“param_type”这样的东西。
    猜你喜欢
    • 2014-12-13
    • 2012-12-18
    • 2010-09-13
    • 1970-01-01
    • 2021-10-28
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    相关资源
    最近更新 更多