1. NullPointerException : 객체배열의 각 인덱스에 담긴 값이 null인 상태에서 메소드를 호훌하려고 했기 때문에 오류가 발생
package com.kh.chap02_objectArray.run;
import com.kh.chap02_objectArray.model.vo.Phone;
public class WrongSample {
public static void main(String[] args) {
Phone[] arr = new Phone[3];
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getName());
}
}
}
조치내용 => 객체배열을 만든 후 각 인덱스별로 객체 생성을 진행해야됨
package com.kh.chap02_objectArray.run;
import com.kh.chap02_objectArray.model.vo.Phone;
public class WrongSample {
public static void main(String[] args) {
Phone[] arr = new Phone[3];
// -------- 1번째 문제의 조치내용 -----------
arr[0] = new Phone();
arr[1] = new Phone();
arr[2] = new Phone();
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getName());
}
}
}
2. ArrayIndexOutOfBoundsException : 배열의 적절한 인덱스 범위를 벗어난 경우
package com.kh.chap02_objectArray.run;
import com.kh.chap02_objectArray.model.vo.Phone;
public class WrongSample {
public static void main(String[] args) {
Phone[] arr = new Phone[3];
arr[0] = new Phone();
arr[1] = new Phone();
arr[2] = new Phone();
for(int i = 0; i < arr.length+1; i++) {
System.out.println(arr[i].getName());
}
}
}
조건식으로 i <= 배열의 길이라고 제시돼있음. 배열의 마지막 인덱스보다 큰 값이 제시
조치내용 => 조건식 수정 (i < 배열의 길이)
package com.kh.chap02_objectArray.run;
import com.kh.chap02_objectArray.model.vo.Phone;
public class WrongSample {
public static void main(String[] args) {
Phone[] arr = new Phone[3]; // 배열만 !!!!
arr[0] = new Phone();
arr[1] = new Phone();
arr[2] = new Phone();
for(int i = 0; i < arr.length; i++) {
// 2번째 문제의 조치내용 i < arr.length +1 => i < arr.length
System.out.println(arr[i].getName());
}
}
}