一部のデータを文字列配列にダウンロードしています。としましょうImageLinks
。配列内のアイテムが存在するかどうかを確認するにはどうすればよいですか?
やっています
if(ImageLinks[5] != null){}
しかし、それは私に与えますArrayIndexOutOfBoundsException
。(実際には配列に 5 リンクがないため)
を防ぐにはArrayIndexOutOfBoundsException
、次を使用できます。
if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
// do something
}
のステートメントはif
左から右にチェックされるため、配列のサイズが正しくない場合は null チェックに到達しません。
どんなシナリオでも一般化するのはとても簡単です。
静的関数を書く
public static boolean indexInBound(String[] data, int index){
return data != null && index >= 0 && index < data.length;
}
今、あなたのコードでそれを呼び出してください
if(indexInBound(ImageLinks, 5) && ImageLinks[5] != null){
//Your Code
}
検索を行う前に、配列がその長さであることを確認してください
if(ImageLinks.length > 5 && ImageLinks[5] != null){}
失敗する理由は、配列の要素が 6 未満であるためです。
最初に配列の要素数が正しいことを確認してから、要素が配列内に存在することを確認します。
if (ImageLinks.length > 5 && ImageLinks[5] != null) {
// do something
}
はい、要素は 6 つ未満です ImageLinks[5] は、Java の配列インデックスが 0 から始まるため、6 番目の要素を参照します