2015-01-11 2 views
0

푸시 메서드에서 오류가 발생하지만 메서드와 코드에서 문제를 찾을 수 없습니다. 메시지는 다음푸시 메서드가있는 알 수없는 예외

Exception in thread "main" java.lang.NullPointerException 
at stack.Stackmethod.newObject(Stackmethod.java:71) 
at stack.Stackmethod.push(Stackmethod.java:24) 
at stack.StackMain.main(StackMain.java:10) 

및 지정된 코드 :

라인 71 :

private void newObject() { 
    Object[] arr = new Object[tmp.length + 1]; 
    for(int i = 0; i < tmp.length; i++) { 
     arr[i + 1] = tmp[i]; 
    } 
    arr = tmp; 
} 

라인 24 :

@Override 
public void push(Object element) { 
    newObject(); 
    tmp[0] = element; 
} 

라인 4 :

public class Stackmethod implements Stack{ 
    Object [] tmp; 

주요 : 사람이 무엇이 잘못되었는지 설명 할 수 있다면

public class StackMain { 

    public static void main(String[] args) { 

     Stackmethod stc = new Stackmethod(); 


     stc.push(7); 
     System.out.println(stc.toString()); 

, 나는 그것을 감사하겠습니다.

+4

'tmp'란 무엇입니까? – Maroun

+2

분명히 tmp가 null입니다. –

+0

다른 값을 저장하기 위해 사용했습니다 – Blackcat575

답변

0

당신은 "TMP"배열을 초기화해야합니다

자바 객체 [] TMP에서
public class Stackmethod implements Stack{ 
    Object [] tmp = new Object[SOME_LENGTH_DEPENDING_ON_HOW_YOU_USE_IT]; 

그냥 배열에 대한 참조이며, 기본적으로 null로 초기화됩니다. 이러한 참조를 통해 요소에 액세스하려고하면 NullPointerException이 발생합니다.

+0

고마워 그것은 일했다 :) 나는 매우 새로운 것을 알고있다. 그래서 나는 몰랐다. – Blackcat575

+0

나는 그 필요에 대한 충분한 담당자가 없다. 나는 4 XD를 가지고있다. – Blackcat575

관련 문제