2016-10-12 5 views
1

내 인생에서 내가 왜 여기에 오류가 발생하는지 알 수 없습니다. 그것은 입력 할 수 있지만 끝내고 "emp [i] .setName"로 시작하는 줄에서 theres NullPointerException 말한다. 자바에서 배열을 만들 때왜 배열에 NullPointer 예외가 발생합니까?

String dpt, salary, name; 
    Manager[] emp = new Manager[3]; 

    for (int i=0; i<3; i++) 
    { 
     name = JOptionPane.showInputDialog("Enter Name"); 
     emp[i].setName(name); 
+0

관리자의 배열을 만들었지 만 배열의 각 요소를 새 Manager()로 설정하지 않았기 때문에. – nhouser9

+0

배열이 null로 가득 차 있습니다 ... – Li357

답변

3

, 모든 요소는 널 (비 기본 유형 어쨌든;의 int, 예를 들어 단지 0 것)입니다. 실제 객체가있는 배열을 만들려면 객체를 만들어야합니다. 하나의 옵션 (그리고 간단한)이 같은 루프를 만드는 것입니다 :

String dpt, salary, name; 
Manager[] emp = new Manager[3]; 

for (int i=0; i<emp.length; i++) 
{ 
    emp[i] = new Manager(); // Create the object 
    name = JOptionPane.showInputDialog("Enter Name"); 
    emp[i].setName(name); 
} 

이 또한 그냥 숫자 3이 대신 for 루프 emp.length을 사용하는 것을 알 수있다 그래서 경우의 크기 당신의 관리자 배열이 변경되면 ArrayIndexOutOfRangeException (존재하지 않는 배열의 요소에 액세스하려고 시도)하지 않습니다.

This question에는 확실히 읽을 가치가있는 훨씬 자세한 답변이 있습니다.

+1

'Java로 배열을 만들면 모든 요소가 null입니다. '원시 타입이 아닌 경우에만. – Zarwan

+0

사실, 중복으로 표시된 질문에는 "null 포인터가 무엇입니까?"보다 자세한 내용이 있습니다. –

+0

@ Zarwan, edited. 문자열에 관한 부분은 정확합니다, 네? – 3ocene

관련 문제