Javaには短絡評価があると思いましたが、この行はまだヌルポインター例外をスローしています:
if( (perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey())) ) {
この場合perfectAgent
はnull
であるため、式全体が を返すようにしたいのですfalse
が、この行で NullPointerException が発生してアプリがまだクラッシュしています。
編集、一般的な応答:
perfectAgent
isであるため、式が true になることはあり得ないため、 の右側にあるものは実行されませんnull
。さらに言えば、有効な参照が含まれていないため (null ですべて)、実行&&
することはできません。別のステートメントでnullをチェックする必要がないように、短絡評価を使用しようとしています。これにより、ロジックがより雑になります。perfectAgent.getAddress()
perfectAgent
編集2(または、私はばかです):ええ、人生の多くのことと同様に、自分がバカだと世界に発表した直後に答えを見つけます. この場合、何か他のことをしているときに Eclipse の自動ビルドをオフにし、オンに戻さなかったので、ソースと一致しないクラス ファイルをデバッグしていました。