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