在以前的编写java代码过程中没注意过java规范,上午看到一款开源软件PMD尝试了一下挺好用的。
在这里记下印象深刻的部分和以后的编程生涯中用的上的部分:
1. PositionLiteralsFirstInComparisons:
http://pmd.sourceforge.net/rules/design.html#PositionLiteralsFirstInComparisons
2.OnlyOneReturn
http://pmd.sourceforge.net/pmd-4.3.0/rules/controversial.html#OnlyOneReturn
3.CollapsibleIfStatements
http://pmd.sourceforge.net/pmd-4.3.0/rules/basic.html#CollapsibleIfStatements
4. LongInstantiation
http://pmd.sourceforge.net/pmd-4.3.0/rules/migrating.html#LongInstantiation
5.AvoidInstantiatingObjectsInLoops
http://pmd.sourceforge.net/pmd-4.3.0/rules/optimizations.html#AvoidInstantiatingObjectsInLoops
6.UseIndexOfChar
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#UseIndexOfChar
7.UseCollectionIsEmpty
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#UseCollectionIsEmpty
8.InsufficientStringBufferDeclaration
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#InsufficientStringBufferDeclaration
9.InefficientStringBuffering
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#InefficientStringBuffering
10.UseStringBufferForStringAppends
pmd.sourceforge.net/pmd-4.3.0/rules/optimizations.html#UseStringBufferForStringAppends
11.AvoidReassigningParameters
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#AvoidReassigningParameters
12.AppendCharacterWithChar
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#AppendCharacterWithChar
13.AvoidPrintStackTrace
http://pmd.sourceforge.net/pmd-4.3.0/rules/logging-java.html#AvoidPrintStackTrace
14.AtLeastOneConstructor
http://pmd.sourceforge.net/pmd-4.3.0/rules/controversial.html#AtLeastOneConstructor
15. ConstructorCallsOverridableMethod : 此处一定要注意一下
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#ConstructorCallsOverridableMethod
16.AbstractNaming
http://pmd.sourceforge.net/pmd-4.3.0/rules/naming.html#AbstractNaming
17.ReplaceHashtableWithMap
http://pmd.sourceforge.net/pmd-4.3.0/rules/migrating.html#ReplaceHashtableWithMap
18.IfElseStmtsMustUseBraces
http://pmd.sourceforge.net/pmd-4.3.0/rules/braces.html#IfStmtsMustUseBraces
19.NonThreadSafeSingleton
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#NonThreadSafeSingleton
20.BooleanInversion : 这个是新东西,以前没接触过
http://pmd.sourceforge.net/pmd-4.3.0/rules/controversial.html#DefaultPackage
21.ReturnEmptyArrayRatherThanNull
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#ReturnEmptyArrayRatherThanNull
22.FinalFieldCouldBeStatic
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#FinalFieldCouldBeStatic
23.DoNotUseThreads
http://pmd.sourceforge.net/pmd-4.3.0/rules/j2ee.html#DoNotUseThreads
24.IntegerInstantiation
http://pmd.sourceforge.net/pmd-4.3.0/rules/migrating.html#IntegerInstantiation
25.AvoidDeeplyNestedIfStmts
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#AvoidDeeplyNestedIfStmts
26.UseSingleton
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#UseSingleton
27.AssignmentInOperand 此处也是有必要注意的
http://pmd.sourceforge.net/pmd-4.3.0/rules/controversial.html#AssignmentInOperand
28.StringInstantiation
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#StringInstantiation
29.UseLocaleWithCaseConversions
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#UseLocaleWithCaseConversions
30.UnsynchronizedStaticDateFormatter
http://pmd.sourceforge.net/pmd-4.3.0/rules/design.html#UnsynchronizedStaticDateFormatter
31.UselessStringValueOf
http://pmd.sourceforge.net/pmd-4.3.0/rules/strings.html#UselessStringValueOf
32.UseArrayListInsteadOfVector
http://pmd.sourceforge.net/pmd-4.3.0/rules/optimizations.html#UseArrayListInsteadOfVector
33.AvoidUsingShortType
http://pmd.sourceforge.net/pmd-4.3.0/rules/controversial.html#AvoidUsingShortType
34.UnnecessaryReturn
http://pmd.sourceforge.net/pmd-4.3.0/rules/basic.html#UnnecessaryReturn