我有以下循环,我得到了PMD静态检查消息:避免在循环中实例化新对象 Voc是构造函数。 我需要在每个循环中创建新实例,有不同的方式吗?
for (AnnoValue currValue : collection.getValues())
{
Voc(termName, this.nameSpace, this.alias);
}
答案 0 :(得分:0)
首先确保无论如何你可以为每次迭代重用这个Voc实例。在这种情况下,将此实例创建移出循环,并可能在循环开始时清除状态信息。
Voc vocInst = new Voc();
vocInst.setNamespace(this.nameSpace);
vocInst.setAlias(this.alias);
for (AnnoValue currValue : collection.getValues())
{
vocInst.clear();
vocInst.setTermName(termName); // I believe this is local variable and the rest of the parameters are instance variables.
.....
.....
}