【发布时间】:2015-11-16 16:42:35
【问题描述】:
我有一个方法,它将对象数组作为输入并将其存储在实例变量中。这是执行此操作的代码,但 FindBugs 报告了一个错误,提示“可能通过合并对可变对象的引用来暴露内部表示”。
public final class HelloWorld
{
public final Hello objs[];
public HelloWorld(Hello[] inputs)
{
this.objs = inputs;
}
}
我尝试使用 Arrays.copyOf,但仍然出现此错误。
this.objs = Arrays.copyOf(inputs,inputs.length);
我该如何解决这个 FindBugs 问题?
【问题讨论】:
-
如前所述,当有人构造了 Helloworld 对象后,他们可以更改输入的内容(他们的变量),这将更改 Helloworld 的版本。