sar*_*Fly 16 java code-analysis pmd
我正在使用PMD来分析代码,它会产生一些我不知道如何解决的高优先级警告.
1)Avoid if(x!=y)..; else...;但如果我需要这个逻辑,我该怎么办?也就是说,我确实需要检查一下x!=y?我怎么能重构它?
2)Use explicit scoping instead of the default package private level.但是这个类确实只在包中使用.我应该使用什么访问修饰符?
3)Parameter is not assigned and could be declared final.我应该在PMD用这个警告指出的所有地方添加final关键字吗?
mha*_*ler 31
避免否定:相反的if( x!=y ) doThis() else doThat(),检查的阳性病例第一,因为人们/人往往喜欢比负更积极的东西.它会扭曲大脑,在阅读源代码时必须扭转逻辑.所以相反,写:
if ( x!=y ) doThis() else doThat() // Bad - negation first
if ( x==y ) doThat() else doThis() // Good - positive first
Run Code Online (Sandbox Code Playgroud)
显式范围界定:根据PMD网站,这是一个有争议的规则.你可能讨厌它,有人喜欢它.你应该做的是让你班级中的所有领域都是私人的.似乎有一个包含可见性的字段或方法(不是类),例如:
class Foo {
/* private missing */ Object bar;
}
Run Code Online (Sandbox Code Playgroud)
最终参数:方法参数应该是最终的,以避免意外重新分配.这只是一个很好的做法.如果您正在使用Eclipse,则内容辅助甚至会提供一个名为"在可能的情况下将修改器更改为最终"的快速修复程序.只需使用Ctrl-a选择编辑器中的所有代码,然后按Ctrl-1.
您无需启用所有规则.选择您同意的一些规则并重构代码,直到清除所有警告.
1 - 将其重构为if (x == y) ... else ...逻辑.只要避免在判断中出现负面情况,就会使代码难以理解
2 - 我不会启用该规则.
3 - 很多人宣称很多领域和变量是最终的.特别是当他们想要确定或表示在该方法中不应改变变量的值时.如果您不喜欢,请禁用该规则.
| 归档时间: |
|
| 查看次数: |
15624 次 |
| 最近记录: |