jjzjj

java - 逐行迭代文本文件的内容 - 是否有最佳实践? (与 PMD 的 AssignmentInOperand 相比)

我们有一个Java应用程序,其中包含一些知道读取文本文件的模块。他们用这样的代码很简单地做到了:BufferedReaderbr=newBufferedReader(newFileReader(file));Stringline=null;while((line=br.readLine())!=null){...//dostufftofilehere}我在我的项目上运行了PMD,并在while(...)行中遇到了“AssignmentInOperand”违规。除了显而易见的循环之外,还有更简单的方法吗:Stringline=br.readLine();while(line!=null)

java - 逐行迭代文本文件的内容 - 是否有最佳实践? (与 PMD 的 AssignmentInOperand 相比)

我们有一个Java应用程序,其中包含一些知道读取文本文件的模块。他们用这样的代码很简单地做到了:BufferedReaderbr=newBufferedReader(newFileReader(file));Stringline=null;while((line=br.readLine())!=null){...//dostufftofilehere}我在我的项目上运行了PMD,并在while(...)行中遇到了“AssignmentInOperand”违规。除了显而易见的循环之外,还有更简单的方法吗:Stringline=br.readLine();while(line!=null)

java - 记录器与 System.out.println

我正在为Eclipse使用PMD插件,但在使用System.out.println()时出现错误,说明如下:System.(out|err).printisused,considerusingalogger.我的问题是-什么是记录器?它是如何打印到屏幕上的?为什么更好? 最佳答案 见thisshortintroductiontolog4j.问题在于使用System.out打印调试或诊断信息。这是一种不好的做法,因为您无法轻松更改日志级别、将其关闭、自定义等。但是,如果您合法地使用System.out向用户打印信息,则可以忽略此警告。

java - 记录器与 System.out.println

我正在为Eclipse使用PMD插件,但在使用System.out.println()时出现错误,说明如下:System.(out|err).printisused,considerusingalogger.我的问题是-什么是记录器?它是如何打印到屏幕上的?为什么更好? 最佳答案 见thisshortintroductiontolog4j.问题在于使用System.out打印调试或诊断信息。这是一种不好的做法,因为您无法轻松更改日志级别、将其关闭、自定义等。但是,如果您合法地使用System.out向用户打印信息,则可以忽略此警告。

java - 避免 printStackTrace();改用记录器调用

在我的应用程序中,我正在通过PMD运行我的代码。它向我显示了这条消息:AvoidprintStackTrace();usealoggercallinstead.这是什么意思? 最佳答案 这意味着你应该使用像logback这样的日志框架或log4j而不是直接打印异常:e.printStackTrace();您应该使用此框架的API记录它们:log.error("Ops!",e);日志框架为您提供了很大的灵active,例如您可以选择是否要登录到控制台或文件-或者如果您发现某些消息在某些环境中不再相关,则可以跳过它们。

java - 避免 printStackTrace();改用记录器调用

在我的应用程序中,我正在通过PMD运行我的代码。它向我显示了这条消息:AvoidprintStackTrace();usealoggercallinstead.这是什么意思? 最佳答案 这意味着你应该使用像logback这样的日志框架或log4j而不是直接打印异常:e.printStackTrace();您应该使用此框架的API记录它们:log.error("Ops!",e);日志框架为您提供了很大的灵active,例如您可以选择是否要登录到控制台或文件-或者如果您发现某些消息在某些环境中不再相关,则可以跳过它们。

java - PMD 规则上帝类 - 了解指标

我们在Java项目中使用源代码分析器PMD。我正在尝试解决报告的问题,目前我正在为GodClass规则而苦苦挣扎。我知道这个想法不是要创建庞大的类(class)。不过,我不喜欢“巨大”这个词,因为它太模糊了。谁能解释一下这个规则的指标是如何工作的?报告说,例如可能的上帝类(WMC=47,ATFD=11,TCC=0.06315789473684211)这些数字是什么意思?有人知道决定特定类别是否庞大的公式吗?此规则的Javadoc声明Theruleusesthedetectionstrategydescribedin[1].Theviolationsarereportedagainstt

android - PMD、checkstyle 和 findbugs android 设置

如何使用最新版本的gradle为Android项目设置PMD、Findbugs和Checkstyle静态代码分析工具?我尝试了几件事,但没能成功。谢谢 最佳答案 Checkstyle/PMD有一个很好的插件可以用于checkstyle和pmd。只需添加buildscript{repositories{//...}dependencies{//...classpath'com.android.tools.build:gradle:1.2.3'//EnablescheckStyleandpmdgradlesupportforandroi

java - 从 Maven 插件中的 PMD 中删除单个规则检查

我想在POM中排除单个PMD规则,但它不起作用。我尝试创建一个pmd-exclude.xml(在与pom.xml相同的目录中):Removerules来自http://www.ing.iac.es/~docs/external/java/pmd/howtomakearuleset.html并在pom.xml中引用它:org.apache.maven.pluginsmaven-pmd-plugin3.0.1utf-8${pom.basedir}/pmd-exclude.xml但它会不断报告这些规则。另外:我不想指定它必须检查哪些规则,因为新版本可以(并且将会)包含新规则,而且我不想检查每

java - PMD/CPD : Ignore bits of code using comments

有没有办法告诉PMD忽略检查部分代码的重复?例如,我可以这样做吗://CPD-Ignore-On...//CPD-Ignore-Off目前我已经使用Maven像这样设置了PMD,但是没有看到任何希望我做我想做的事情的论据,除非我遗漏了什么。org.apache.maven.pluginsmaven-pmd-plugin2.5401.5truetrue 最佳答案 经过充分的挖掘,我终于找到了它。通过添加注释@SuppressWarnings("CPD-START")和@SuppressWarnings("CPD-END"),CPD将忽