我在我的项目上运行 Findbug 工具,它发现了 18 个类型的问题:
存储对可变对象的引用->可以通过合并对可变对象的引用来公开内部表示
所以我有一个类,构造函数接受 Object 类型的数组并将其分配给私有类成员变量。这是一个例子:
public Class HtmlCellsProcessing extends HtmlTableProcessing
{
private Object[] htmlCells;
public HtmlCellsProcessing(Object[] htmlCells)
{
this.htmlCells = htmlCells;
}
}
以下是有关警告的进一步说明:
此代码将对外部可变对象的引用存储到对象的内部表示中。如果实例由不受信任的代码访问,并且对可变对象的未经检查的更改会危及安全性或其他重要属性,则您将需要做一些不同的事情。在许多情况下,存储对象的副本是更好的方法。
他们给我的建议很明显,但是如果数组的大小非常大并且如果我将其值复制到成员变量数组中,应用程序将占用两倍的内存会发生什么。
在我有大量数据的情况下应该怎么做?我应该将它作为参考传递还是总是复制它?