0

EDIT:最後に投稿を編集して、使用した正規表現を提供しました

コードの品質を監視するためにソナーを使用することは素晴らしいことですが、欠点としては、くだらないプロジェクトでは、多くの修正が必要になります。私の問題は、checkstyle ( com.puppycrawl.tools.checkstyle.checks.coding.EqualsAvoidNullCheck ) から約 500 の「Equals avoid Null」違反を修正する必要があることです。それを半自動的に修正するための正規表現が1つあれば、それは素晴らしいことです。

この違反の目的は、変更することです

myObject.getMyMember().toString().equals("one string")

"one string".equals(myObject.getMyMember().toString())

編集:私はこの方法を使用しましたが、ソースツリー全体でsedを起動せずにチェックする必要がある場合でもうまくいきました

合計行に一致する正規表現

([\(|& \t!])([^\(|& \t!])([a-zA-Z0-9_\[\]\(\)\.]*)\.(equals|equalsIgnoreCase)\(("[^"]*")\)

行を置き換える正規表現

\1\5.\4(\2\3)

500 件の違反を修正するのに 1 日かかりました。まだまだ大変な作業ですが、手作業だったらもっと大変だったでしょう。

4

1 に答える 1

0

それが解決策であるかどうかはわかりませんが、試してください:

final String sTmp = myObject.getMyMember();
    if(null != sTmp) {<br>
    // Test .equals() here <br>
    ..<br>

}

于 2012-04-11T15:41:22.390 に答える