【问题标题】:Sonar Violation: Security - Array is stored directly - Why only arrays?声纳违规:安全 - 数组直接存储 - 为什么只有数组?
【发布时间】:2014-07-25 06:55:25
【问题描述】:

在这里提问之前我已经看到link,我想知道为什么 SONAR 只抱怨数组而不是自定义对象。

因为我们在 bean 中声明的自定义对象也会出现同样的问题。而且,我不同意为什么我们需要复制,因为我们喜欢修改同一个数组,这就是为什么我们有 setter 并且都是正确的?

请帮助我理解,SONAR 在此类别中显示的违规数量更多。

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    应避免共享可变状态,因为它可能会导致您的程序出错。特别是如果您在多线程环境中工作。它还可以使您的程序可读性降低。这就是为什么修改相同状态的通信抛出至少应该最小化。

    处理集合和数组以及日期是常见的做法,以确保您不会在您的类/线程中使用从其他对象/线程提供的相同对象。

    【讨论】:

    • 为什么它没有抱怨对象,只有像数组这样的集合?
    • 因为对于数组(和 java.until.Date 对象),解析器肯定知道它们是可变的。对于任意对象,最好的做法是坚持使用不可变对象。
    猜你喜欢
    • 2014-06-16
    • 2012-07-19
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2014-05-17
    相关资源
    最近更新 更多