2016-04-26 22 views
0

私はPMD警告 - UseCollectionIsEmptyを取得しています。正確なメッセージは以下の通りです:PMDの警告:UseCollectionIsEmptyを修正するにはどうすればよいですか?

"size()== 0(またはsize()!= 0、size()> 0、size )< 1)最後のelse ifステートメントでisEmpty()を呼び出します。

私の問題は、私のステートメントがArrayListが空でないかどうかをチェックしていることです。しかし、PMDの警告はisEmpty()に変更するように指示していますが、これは私が行う必要のないものです。これを修正するための回避策は何ですか?代わりに、あなたが使用する必要があります

} else if (myPossDir.size() > 0) { 
     myDirection = myPossDir.get(random.nextInt(myPossDir.size())); 
    } else { 
     myDirection = getDirection().reverse(); 
    } 

 if (theNeighbors.get(getDirection()) == Terrain.CROSSWALK) { 
      myDirection = getDirection(); 
     } else if (theNeighbors.get(getDirection().left()) == Terrain.CROSSWALK) { 
      myDirection = getDirection().left(); 
     } else if (theNeighbors.get(getDirection().right()) == Terrain.CROSSWALK) { 
      myDirection = getDirection().right(); 
     } else if (myPossDir.size() > 0) { 
      myDirection = myPossDir.get(random.nextInt(myPossDir.size())); 
     } else { 
      myDirection = getDirection().reverse(); 
     } 
+0

あなたはそれを誤読しています。これは 'size()'の一般的な使い方について話しています。あなたの場合、 'isEmpty'を否定します。 – Savior

+0

@PiIlarもしあなたが 'else if(!myPossDir.isEmpty())'を実行することを意味するならば、私はそれに対して新しいPMD警告を受け取ります "回避するなら(x!= y)..; else ..; "もし私がそれをすれば。 – Jasmine

+1

ああ、そうです。ちょうどそれらを並べ替える。 'if'で肯定的なものを行い、elseで否定的なものを行います。 – Savior

答えて

0

} else if (myPossDir.isEmpty()) { 
     myDirection = getDirection().reverse(); 
    } else { 
     myDirection = myPossDir.get(random.nextInt(myPossDir.size())); 
    } 

これは、上記のPMDの警告が離れて行くようになります、そしてそれがより明確に自分の意図を述べて、あなたがいることを確認したいですコレクションは空ではありません。 size()を使用するのは、それをゼロと比較しない場合です。

EDIT:IFSの変更オーダーなので、今は代わりに!isEmpty()の(別のPMDの警告を、そしてif Sを否定として読みやすい否定ではないものとではありません)isEmpty()を使用

関連する問題