0
학교용 프로그램에서 작업 할 때 메서드에 지정한 값에 따라 배열의 인덱스를 반환하는 메서드를 만들었습니다. 이 메서드는 NullPointerException을 throw하지만 배열의 모든 인덱스에 이미 인스턴스화되었습니다. 이것을 보여주기 위해 똑같은 테스트 프로그램을 만들었습니다.배열의 하나의 인덱스를 반환하는 메서드는 NullPointer를 throw합니다.
public class Test {
private static Number[] numbers = new Number[16];
public static void main(String[] args) {
new Test();
}
public Test() {
for (Number n : numbers) {
n = new Number(0);
}
System.out.println(get(0).value);
}
public Number get(int index) {
return numbers[index];
}
class Number {
public int value;
public Number(int value) {
this.value = value;
}
}
}
이 옵션을 실행하면 Integer "value"값이 출력됩니다.이 값은 배열의 첫 번째 위치에있는 객체의 경우입니다.
나는 이것에 간단한 설명이있을 것이라고 확신하지만, 나는이 문제를 인식하지 못하고있다.
대단히 감사합니다. 각 루프가 일반 for 루프와 똑같이 작동하지 않는다는 것을 알지 못했습니다. – piechesse
@piechesse 예, 마지막에 제공 한 링크를 읽을 수 있습니다.) –