2016-10-08 2 views
1

컴파일러 문제 : "mass [i] .mainN = scan.nextInt();"행의 NullPointerException. 내 마음에, 나는 모든 변수 "mainN"과 배열 "질량"을 초기화했다. 예외의 이유는 무엇입니까?내 배열의 NullPointerException

Robo[] mass = new Robo[N]; 
for(int i = 0; i < mass.length; i++) { 
    mass[i]= new Robo(); // Add this line 
    mass[i].mainN = scan.nextInt(); 
    mass[i].auxiliary = scan.nextInt(); 
} 

자바가 null 요소의 배열을 할당 : 배열을 초기화

import java.util.Scanner; 

public class Robotics{ 

public static void main(String[] args) { 

    Scanner scan = new Scanner(System.in); 
    int N = scan.nextInt(); 
    Robo[] mass = new Robo[N]; 
    for(int i = 0; i < mass.length; i++) { 
     mass[i].mainN = scan.nextInt(); 
     mass[i].auxiliary = scan.nextInt(); 
    } 
    scan.close(); 
} 

class Robo{ 
    int mainN; 
    int auxiliary; 
} 
+0

NullPointerException은 런타임 문제가 아니며 컴파일 문제는 아닙니다. –

답변

0

이 충분하지, 당신은 또한 각 개별 요소를 초기화해야합니다. 특히 C++에 사전 노출 된 프로그래머에게는 특히 직관적이지 않습니다.