私は持っています
if (localName.equals("TaxName")) {
しかしPMDは言う
Position literals first in String comparisons
"TaxName".equals(localName)
localName
nullであるかのように、nullポインタ例外を取得しない方がよいでしょう。
PMDは、この警告が生成される理由も通知する必要があります。PMD Webサイトのルールドキュメントから:
文字列の比較でリテラルを最初に配置します。そうすれば、文字列がnullの場合、NullPointerExceptionは発生せず、falseが返されます。
私はリテラルを最初に配置することを好みます、すなわち:
if ("TaxName".equals(localName)) { ...
このようにして、NullPointerExceptionを取得する代わりに、nullの場合の正しい比較を行います。
個人的には、それは私には意味がありません。コードがNullPointerExceptionをキャッチした場合、後で行う必要のない作業が完了します。localNameがnullになり、後で問題が発生する場合は、追跡が困難になります。コンパイラを満足させるためにコードを変更しないでください。コードがNullPointerExceptionをスローした場合、後でデバッグする時間を節約できます。
この警告を回避するためのより簡単な解決策は、事前にnullpointersをチェックすることです。これは、この場合だけでなく、管理するすべてのオブジェクトで推奨されます。
if (localName!=null && localName.equals("TaxName")) {
...
}