【发布时间】:2013-06-24 19:02:35
【问题描述】:
我遇到了 PMD 规则 Avoid instantiating new objects inside loops 的问题。下面是一些示例代码:
import java.awt.Dimension;
public class PMDDemo {
public static void main(final String[] args) {
final Dimension[] arr = new Dimension[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Dimension(i, i); // rule violation here
}
}
}
PMD 在代码中的标记位置向我提供了上述违反规则的情况。我应该如何创建一个类的 n 个实例而不在循环中创建它们?
我知道 PMD 的一些规则是有争议的(例如 onlyOneExit 规则)。但到现在为止,我至少明白了他们背后的想法。我不明白这条规则背后的原因。有人可以帮我吗?
【问题讨论】:
-
在这种情况下(或者在我能想到的大多数情况下)没有意义......
-
我认为这条规则试图鼓励的是短期对象的对象池,据我所知,这几天也不是一个好主意:programmers.stackexchange.com/questions/149563/…
-
@assylias 你能想出一个有意义的场景吗?如果没有,我将禁用该规则。
-
@brimborium 等瞧。
标签: java loops instantiation pmd