Diese Schleife ist seltsam.Java-Index-Array außerhalb der Grenzen Ausnahme
Ich habe dies in Java ausgeführt, gibt es eine Index außerhalb der Grenzen Ausnahme. Ich kann keine int l
Erklärung irgendwo im Quellcode finden und ich kann nicht herausfinden, was es ist und fand heraus, dass es legal ist, dass es auf diese Weise erklärt wird.
Aber der Deal hier ist, ich verstehe nicht, was dieser Teil des Codes tut. Für jede Größe von resultSIList
gibt es eine ArrayIndexOutOfBoundsException
.
for (int i = offset, l = Math.min(i + maxItemsInOnePage, totalSIs); i < l; i++){
resultSIList.get(i);
}
EDIT: Vielen Dank an Alle.
Hier ist ein lauffähiger Code, den ich benutze, um zu versuchen, diese ganze Schleife zu verstehen. Ja, es ist ein schreckliches Stück Müll.
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();
}
}
}
Ich habe ein Wort für Sie: Debugger. Gehen Sie durch und sehen Sie, wie das Verhalten Ihren Annahmen nicht entspricht. – duffymo
Könnten Sie einen negativen Offset haben? –
was ist die Größe von resultSIList –