このループは異常です。Javaインデックス配列境界外例外例外
これをJavaで実行した場合、インデックス外に例外が発生します。ソースコードのどこにでもint l
宣言が見つかりません。何があって、このように宣言されているかがわかりません。
しかし、ここで取り上げるのは、このコードが何をしているのか分かりません。 resultSIList
の任意のサイズについては、ArrayIndexOutOfBoundsException
となります。
for (int i = offset, l = Math.min(i + maxItemsInOnePage, totalSIs); i < l; i++){
resultSIList.get(i);
}
EDIT:おかげですべての。
私はこのループ全体を理解しようとしている実行可能なコードです。はい、それはジャンクの恐ろしい部分です。
public class IndexOutOfBoundsTest {
public static void main(String args[]){
int offset = 50;
int maxItemsInOnePage = 50;
int totalSIs = 50;
final int buildThis = 15;
List resultSIList = new ArrayList();
// build list
for(int zz = 0; zz < buildThis; zz ++){
resultSIList.add("Hi " + zz);
}
try{
for (int i = offset,
d = Math.min(i + maxItemsInOnePage, totalSIs);
i < d; i++){
System.out.println(resultSIList.get(i));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
私はあなたのために1つの言葉を持っています:デバッガ。ステップスルーして、どのように動作があなたの前提条件に合わないかを確認してください。 – duffymo
マイナスの「オフセット」がありますか? –
resultSIListのサイズは何ですか –