【发布时间】:2014-07-25 06:55:25
【问题描述】:
在这里提问之前我已经看到link,我想知道为什么 SONAR 只抱怨数组而不是自定义对象。
因为我们在 bean 中声明的自定义对象也会出现同样的问题。而且,我不同意为什么我们需要复制,因为我们喜欢修改同一个数组,这就是为什么我们有 setter 并且都是正确的?
请帮助我理解,SONAR 在此类别中显示的违规数量更多。
【问题讨论】:
在这里提问之前我已经看到link,我想知道为什么 SONAR 只抱怨数组而不是自定义对象。
因为我们在 bean 中声明的自定义对象也会出现同样的问题。而且,我不同意为什么我们需要复制,因为我们喜欢修改同一个数组,这就是为什么我们有 setter 并且都是正确的?
请帮助我理解,SONAR 在此类别中显示的违规数量更多。
【问题讨论】:
应避免共享可变状态,因为它可能会导致您的程序出错。特别是如果您在多线程环境中工作。它还可以使您的程序可读性降低。这就是为什么修改相同状态的通信抛出至少应该最小化。
处理集合和数组以及日期是常见的做法,以确保您不会在您的类/线程中使用从其他对象/线程提供的相同对象。
【讨论】: