■対策
【1】Avoid if (x != y) ..; else ..;
【例】 if (value != null) { // 処理A } else { // 処理B } 【対策例】 if (value == null) { // 処理B } else { // 処理A }
■(個人的に)不要なルール
* (個人的に)不要なルールを纏めておく
【1】OnlyOneReturn
* returnは一箇所だけhttp://argius.hatenablog.jp/entry/20070912/1189612071
【2】CommentSize
* コメント文が長い
【3】ShortVariable / LongVariable
* 変数名が短い / 長い => ShortVariable の場合、例えば、 id とかにも注意してくるので。 => ただ、省略した変数名とか嫌なので、 プロジェクトによっては、ShortVariableは、そのままにしていいかも。 => 長いのは、下手に省略された変数名よりいいと個人的には思う
【4】AtLeastOneConstructor
* 少なくとも、1つはコンストラクタが必要 => いいんだが、じゃー、デフォルトコンストラクタで何もしないコンストラクタを作ったら 今度は「UnnecessaryConstructor」って言ってくるから。
■プロジェクトによっては、不要なルール
【1】AvoidUsingShortType
Don't use the short type(Short型を使用するな)* プロジェクトによっては、(使いたくなくてもDBに使用している型がtinyint等により)Short型を使用する場合があるので。 使用する必要がなければ除外する必要があるかも。(個人的には使用しないようにしたいが)そもそも、何故、使用してはならないの?
http://pmd.sourceforge.net/pmd-5.1.1/rules/java/controversial.html
より抜粋 Java uses the 'short' type to reduce memory usage, not to optimize calculation. # Javaは、計算の最適化ではなく、メモリ消費を減らすためにShrort型を使います。 In fact, the JVM does not have any arithmetic capabilities for the short type: the JVM must convert the short into an int, do the proper calculation and convert the int back to a short. # 実は、Java CMはShort型の計算機能を持っていません: # Java VMはShort型をInt型に変換しなければなりません。適切な計算をし、Short型に戻すのです。 Thus any storage gains found through use of the 'short' type may be offset by adverse impacts on performance. # したがって、Short型の使用は、パフォーマンスによる悪影響により相殺を通して、様々なメモリ増加が発見した => 要するに、Short型を使ってメモリ消費を抑えたとしても、計算したらIntになるからメリットほとんどないよってこと?その他の資料