2013-05-14 2 views
0

자바에서 클래스의 2 차원 배열을 실험하고있었습니다. (코드에 코멘트를 읽기) 다음2 차원 배열 클래스를 만들고 사용하는 방법

public class GameEvent 
{ 
    static int LAUNCH_ALIEN = 0; 
    static int END = 1; 

    long time; 
    long cum_time; 
    int alien_type; 
    int event_code; 
} 

GameEvent[][] event_array = new GameEvent[MAX_LEVELS][MAX_EVENTS]; 

아래 같은 코드로 액세스 :

event_array[lev][ctr].event_code = code; // nullpointer exception at runtime 

그래서 제 질문은 지금 나는 다음 (잘못된) 코드를 작성 , 그것이 작동하도록 내 코드를 변경하는 가장 고통스러운 방법은 무엇입니까?

+0

은 어떻게 작동하지 않습니다

실제로는 배열의 모든 셀에 대해 그것을 할 필요가있다 obects을 할당하려면? – Woot4Moo

+0

배열을 초기화하면 제대로 작동합니다. – Zutty

+0

그 위치가 null을 가리키고 있기 때문에 : – Triode

답변

3
GameEvent[][] event_array = new GameEvent[MAX_LEVELS][MAX_EVENTS]; 

개체 배열은 GameEvent 개체에 할당되지만 개체 자체에는 할당되지 않습니다.

for (int i = 0; i < MAX_LEVELS; ++i) 
    for (int j = 0; j < MAX_EVENTS; ++j) 
    event_array[i][j] = new GameEvent();