2012-03-26 5 views
0

Java에서 문자열 유형 스택을 수행하고 있는데 peek 메서드가 어떤지 알고 싶습니다. 이것은 나의 들여다하지만 INT 유형 :Java의 문자열 Peek() 메서드

public int Peek() 
{ 
    NodoOperaciones nodo; 
    int dato; 
    nodo = getCabeza(); 
    dato = nodo.getData(); 
    return dato; 
} 

내가 문자열에 대한 INT를 변경하는 경우 그것은 나에게 널 포인터 예외가 발생합니다. 감사.

+0

NPE는 어디에서 구할 수 있습니까? 그 외에도 관련 장소에서 유형을 '문자열'로 변경하면 효과가 있습니다. 따라서 우리가 얻고있는 오류에 대한 더 많은 정보가 필요합니다. – Thomas

+0

'dato = nodo.getData();'또는'nodo = getCabeza();'에서'NullPointerException'을 던집니다? – RonK

+0

은 모든 코드를 표시합니다. – turbanoff

답변

1

그것은 nodo.getData() 복귀 널이 경우 광고 다토 nodo.getData =()

에서 발생합니다. String의 경우 null을 가질 수 있으므로 예외는 발생하지 않지만 int 유형은 null을 가질 수 없습니다.

0

getCabeza() 메서드는 null을 반환합니다. 그리고 NULL 검사 없이는 nodo.getData()를 수행하고 있습니다. 그 시점에서 NPE 예외가 발생했습니다. 이것은 String의 경우에 발생하지만 int 기본 유형을 사용하는 경우 null을 사용할 수 없습니다. 기본적으로 int는 항상 0입니다.

0

standart java.util.Stack을 사용하면 어떨까요? 이미 peek() 메서드가 구현되어 있으므로 자전거를 다시 만들 필요가 없습니다.

은 다음과 같이 표시됩니다

Stack<String> stack = new Stack<String>(); 
    stack.push("hello"); 
    System.out.println(stack.peek()); // result = hello 

을이 상황 스택에서 여전히에서 요소를 "안녕하세요"가 있습니다.