2014-12-11 3 views
0

내 할당의 일부는 지정한 인덱스에 char 값을 반환하는 charAt() 메서드를 만드는 것입니다. 인덱스가 무효 인 경우는 인덱스 0의 문자를 돌려줍니다.charAt() 메서드 만들기

이것은 내가 지금까지 가지고있는 바 내 과제에서 Java 용 기존 문자열 메서드를 사용할 수 없다는 것을 명시하고 있습니다. 내가 방법 charAt 전화를 이동 할 때마다

public char charAt(int index) { 
    char a; 
    if (index < 0 || index > 25) 
     a = list[0]; 
    else 
     a = list[index]; 
    return a; 
} 

은 내가 NullPointerException 오류가 계속. 권장하는 수정 사항이나 포인터가 있습니까? 아니면 질문이 너무 막연한가?

+3

어디에서 정의 된 목록이 있습니까? 대부분 null 일 가능성이 높습니다. –

+0

아이디어를 얻으려면 Java 라이브러리 방법을 고려해보십시오. 물론 복사하지는 말고 약간의 통찰력을 제공하고 라이브러리에 대한 노출을 제공해야합니다. – IdusOrtus

+0

nullPointerException는 발생하는 정확한 행 번호를 제공해야합니다. 또한 '25'숫자는 어디에서 오는가? 그것이 최대 크기입니까? list [] 배열이 25보다 작은 경우는 어떻게됩니까? list []가 할당되지 않은 것은 무엇입니까? – stackoverflowuser2010

답변

0

당신은 계정으로 확인할 사용하기보다는 당신의 경계에 대해 "매직 넘버"를 사용하는 실제 데이터 취해야한다 : 당신이 경우, Juned는 의견에서 지적했듯이, 다른 주에

if (list.length == 0) { 
    //error, no data 
} 
char back = list[0]; 
if (index >= 0 && index < data.length) { 
    back = list[index]; 
} 
return back; 

을 null 값을 가지고 있고 (. 또는 []을 통해) 역 참조를 시도하면 NullPointerException이 표시됩니다.

그래서 몇 가지 가능한 원인은 다음과 같습니다

  • list
  • 당신이 charAt를 호출하는 객체가 null의 경우, 예를 널 myData이 null 인 경우 myData.charAt(42)