次のコードでは、ArrayIndexOutOfBoundsException または NullPointerException を防ぐにはどうすればよいですか。ある時点で、コメント行 2 が mydates[] の最後のエントリに null 値を与えるか、dates[mod] が ArrayOutOfBoundException をスローするためです。mod > dates.lenght
コメント行 1 で行う
if(dates.length >= 10){
mydates = new String[11];
int last = dates.length;
int mod = 0;
int add_mod = (int) Math.round((double)Math.round(last) /10);
for(int i =0; i < dates.length; i++){
if(mod >= dates.length){ // line1
break;
}
mydates[i] = DateFormatter.GraphDateToString(DateFormatter.convertToDate(
Long.parseLong(dates[mod]))); //line2
mod += add_mod;
}
} else {
mydates = new String[dates.length];
for(int i =0; i < dates.length; i++){
mydates[i] = DateFormatter.GraphDateToString(DateFormatter.convertToDate(
Long.parseLong(dates[i])));
}
}
私がそれを解決した方法は、配列を再度反復処理し、そこから新しい配列を作成しながら null 値をチェックすることでした。しかし、もっと良い解決策があるかどうかを知りたいです。