Tag: pmd

java:为什么Local变量应该声明为final

可能重复: 是否有任何性能原因在Java中声明方法参数final? 为什么在Java中将局部变量和方法参数标记为“final”? 我正在使用PMD来查看代码违规。 在webService方法中,我有以下代码 public ServiceRequest getData() { Status status = new Status(); // code } PMD建议我的是,这个局部变量状态可以被声明为final。 我的问题是,将其作为最终结果会导致任何性能改进,或者如果不能获得代码可以带来什么好处?

PMD:DD / DUexception

我正在使用带有PMD Plug-in (4.0.0.v20130510-1000) Eclipse PMD Plug-in (4.0.0.v20130510-1000)并获得了很多违规行为: Found ‘DD’-anomaly for variable ‘freq’ (lines ‘187’-‘189’). Found ‘DU’-anomaly for variable ‘freq’ (lines ‘189’-‘333’). 在这个 SO答案中,它说这些exception与分配从未读过的值有关。 但是我在这种情况下得到了违规行为: // here I get a DD anomaly double freq = 0; try { // here I get a DU anomaly freq = Double.parseDouble(getFrequencyTextField().getText()); } catch (final NumberFormatException e) { Log.e(e.getMessage()); } […]

Maven Findbugs插件 – 如何在测试类上运行findbug

Maven版本:3.3.3。 Findbugs插件版本:3.0.1 我正在使用findbugs-maven-plugin ,我需要在src和测试类上运行findbugs插件。 目前,它仅适用于源类 Target |_ classes |_ test-classes |_ findbugs (only have results regarding classes folder) 我需要为PMD插件做同样的事情。 同样的提示可能吗? 相关问题: FindBugsfilter文件,用于忽略JUnit测试 如何在测试代码上运行findbug Findbugs maven配置: findbugs org.codehaus.mojo findbugs-maven-plugin ${findbugs.version} Max true Low true true findbugs-exclude.xml analyze-compile verify check findbugs

PMD:避免在循环内实例化新对象

我有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规则)。 但到目前为止,我至少理解他们背后的想法。 我不明白这条规则背后的原因。 有人可以帮助我吗?

PMD规则背后的“为什么”

是否有一个很好的资源来描述PMD规则集背后的“原因”? PMD的网站有“什么” – 每个规则的作用 – 但它没有描述为什么PMD有这个规则,为什么忽略该规则会让你在现实世界中遇到麻烦。 特别是,我有兴趣知道为什么PMD有AvoidInstantiatingObjectsInLoops和OnlyOneReturn规则(如果你需要创建一个对应于集合中每个对象的新对象,第一个似乎是必要的,第二个似乎在许多情况下是必要的根据某些标准返回一个值),但我真正想要的是一个描述大多数PMD规则背后“原因”的链接,因为这经常出现。 为了清楚起见,我知道我可以禁用这些以及如何做到这一点,我只是想知道为什么他们首先在那里。 很抱歉,如果有一些明显的东西我错过了,但我在发布之前进行了谷歌搜索和搜索。 我也明白这些问题往往是“品味”的问题 – 我正在寻找的是规则的论点是什么以及有什么替代品。 举一个具体的例子,你应该如何实现一个对应于循环中每个对象的对象(这是Java中的常见操作)而不在循环中实例化每个对象?

在Eclipse中安装PMD 5.0.4

谁能告诉我如何在Eclipse中安装PMD。 我从以下链接下载了PMD 5.0.4: http://sourceforge.net/projects/pmd/files/latest/download?source=files 当我在Eclipse安装选项中添加此存档文件时,我收到一条错误,指出“它找不到指定的文件”。