2016-10-07 7 views
-1
private static Person[] createPersons(int N) { 
    System.out.println("To be implemented - create "+N+" Person"); 
    Person person[] = new Person[N]; 

    for(int i = 0; i < N; i++){ 
     System.out.println("error1"); 
     int age = 20 + i; 
     String name = "Mr. Espresso" + i; 
     final char gender = 'M'; 
     **person[i].setName(name);** 
     person[i].setAge(age); 
     person[i].setGender(gender); 

    } 
    return person; 

public void setAge(int age) { 
    this.age = age; 
} 


/** 
* Sets the gender of this person. 
* 
* @param gender this person's age 
*/ 
public void setGender(char gender) { 
    this.gender = gender; 
} 

/** 
* Sets the name of this person. 
* 
* @param age this person's name 
*/ 
public void setName(String name) { 
    this.name = name; 
} 

person (object) 배열을 만들고 값으로 채우려고합니다. 그러나 그것은 person [i] .setName (name)에 대해 NullPointerException을 제공합니다. 아무도 그 이유를 설명 할 수 있습니까?NullPointerException이 발생했습니다.

setName/age/gender는 person 개체 클래스의 메서드를 참조합니다. 아래와 같이.

다른 기사를 읽었지만 읽지 못했습니다.

+1

가능한 복제 같은 오류 라인 뭔가 이상 필요 [NullPointerException이 무엇인가, 어떻게 내가 그것을 해결합니까?] (http://stackoverflow.com/questions/218384/what-is-a -nullpointereception-and-how-do-i-fix-it) – Filburt

+1

미친 알약을 먹을 수도 있지만 사용하기 전에 각 배열 요소에 대해 생성자를 호출 할 필요가 없습니다 (person [i] = new Person()). ? –

답변

1

person 배열에 각 Person 객체를 만들어야합니다. 당신은 아마의 person[i] = new Person();

관련 문제