我一直在使用pmd、findbuigs等代码分析器。它们涵盖了很多情况,而且似乎很好用。但是想知道有没有专门针对gwt代码的代码分析器? 最佳答案 您可以随时尝试IntelliJ——它是世界上最好的IDE,而且是免费的(ish)。这是GWTsupportpage的链接. 关于java-专门针对gwt代码的代码分析器?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16671371
这是(可能对某人有好处)“BeanMembersShouldSerialize”PMD规则,其中规定如下:Ifaclassisabean,orisreferencedbyabeandirectlyorindirectlyitneedstobeserializable.Membervariablesneedtobemarkedastransient,static,orhaveaccessormethodsintheclass.Markingvariablesastransientisthesafestandeasiestmodification.Accessormethodsshould
在我的公司,我们开始使用CheckStyle、FindBugs和PMD来检查我们的代码质量并统一我们的编程风格。这些工具非常有效,但不幸的是它们有一些重叠的规则集。是否有已删除重叠规则的在线可用配置?当然,这些默认规则集并不适用于每个项目,但对我们来说是一个很好的起点。我们可以采用此默认(非重叠)配置并使其适应我们的风格,而不是先修剪重复的规则集。 最佳答案 Sonar附带一些非常好的配置,称为SonarWay和SonarWaywithFindBugs,它们在不同工具(CheckStyle、FindBugs和PMD)之间似乎没有任何
问题:为什么mavenPMD插件对下面的代码行发出以下警告:警告:Avoidusingjava.lang.ThreadGroup;itisnotthreadsafe代码(第二行):Calendarcal=Calendar.getInstance();java.sql.DateendDate=newjava.sql.Date(cal.getTime().getTime());上下文:我有一个java.sql.Date实例:publicclassXYZServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletReque
我正在为Eclipse(EclipseKeplerJavaEE)使用PMD插件(版本4.0.2)。我配置了一个命名规则:ShortVariable.除了像"id"和"e"这样的参数,这工作正常。我希望PMD忽略这些。所以我寻找一种方法来忽略某些参数。我找到了thislink(虽然它是用于phpmd的)并尝试过,但我似乎无法让它工作。我的配置文件如下所示(XML):MyPMD当我尝试使用eclipse插件导入此规则集时,它显示没有可导入的规则。有什么想法吗? 最佳答案 我找到了解决问题的方法here.生成的xml如下所示:MyPMD/
在这一行中:publicMapgetAll(BusinessTargetPKpkBusinessTargetId)throwsException我收到这个错误:NPathComplexityis32,768(maxallowedis200)在这一行中:publicMapgetAll(LongRLE_ROLE_ID)throwsException{我收到这个错误:ThemethodgetAll()hasanNPathcomplexityof2048我完全不知道什么是NPathComplexity及其含义。有人可以建议如何避免此类错误吗? 最佳答案
ApacheThrift代码生成器生成如下所示的类。numCpus字段可以为空,但由于它是作为值类型保存的,所以还有另一个isSet字段来确定它是否真的已设置:publicclassTaskConfigextendsTBase{privatebooleanisSetNumCpus;//Actualimplemntationisabitfield.privatedoublenumCpus;publicbooleanisSetNumCpus(){returnisSetNumCpus;}publicdoublegetNumCpus(){returnnumCpus;}publicvoidset
作为程序常规静态分析的一部分,我想检查类是否可能具有合理的toString()方法。可能不是每个类都实现它们,但也许没有可实例化的具体类使用Object的toString()实现。是否有检查此问题的lint工具包?我目前使用的是FindBugs和CheckStyle;我还没有找到一种明显的方法来检查使用其中任何一个。我也在考虑将PMD添加到我的lint套件中,并且也会对Sonar中的某些东西持开放态度。所以我更愿意使用我工具箱中已有的工具来完成它,但如果我需要添加另一个工具,我会考虑它。 最佳答案 您可以使用Checkstyle来做
PMD在SunSecurity规则集中有一个名为ArrayIsStoredDirectly的规则:Constructorsandmethodsreceivingarraysshouldcloneobjectsandstorethecopy.Thispreventsthatfuturechangesfromtheuseraffecttheinternalfunctionality.这是他们的例子:publicclassFoo{privateString[]x;publicvoidfoo(String[]param){//Don'tdothis,makeacopyofthearrayatl
PMD警告我避免boolean实例化(出于效率原因)。我有这样的东西Booleanvariable=newBoolean(somestringIGotRepresentingABoolean);我应该用这个Booleanvariable=Boolean.valueOf(somestringIGotRepresentingABoolean);为什么这样更好? 最佳答案 原因是newBoolean总是返回一个新的实例。由于boolean实例是不可变的,因此拥有超过2个实例是没有意义的。一个为假,一个为真。试试这个,你会看到Boolean