2010-08-19 2 views
1

아래 테스트 코드는 문자열 배열 (6 행)에서 "null pointer deference"버그를 발생시킵니다. 이로 인해 NullPointerException이 발생합니다.버그 : 문자열의 Null 포인터 추론

public class TestString { 
public static void main (String args[]) { 
String test [] = null; 
for (int i =0; i < 5; i++) { 
    String testName = "sony" + i; 
    test [k] = testName; 
} 
} 
} 

- 어떻게 수정합니까? -이 버그의 원인은 무엇입니까?

덕분에, 소니

답변

6

당신은 전에, 다음과 같이 배열을 초기화 할 필요가 : 당신이 배열을 사용할 때마다

test = new String[5]; 

, JVM은 그 존재의 크기를 알아야합니다.

자바에서는 배열을 초기화하는 많은 방법이 있습니다.

test = new String[5]; 

다섯 개의 배치로 배열을 만들면됩니다.

test = new String[]{"1", "2"}; 

두 진지 배열을 생성 (6 번째 요소를 추가 할 수 없다) 어느은 숫자 1, 2

String[] test = {"1", "2"}; 

포함 두 진지 배열을 생성하고, 값을 포함한다 그러나 당신이 알아 차릴 때 배열 선언으로 동시에 donne 여야합니다.

Java 배열에 정적 인이있는 경우이를 만들 때 크기를 지정하면 변경할 수 없습니다.

0

배열을 초기화하지 않습니다. 세 번째 행에 null로 설정 한 다음 여섯 번째 행에 존재하지 않는 배열로 문자열을 설정하려고합니다.

String test [] = new String[5]; 
3

코드에서 너무 많은 오류가 있습니다 :이 같은 배열을 초기화 할 수 있습니다. 1) k 란 무엇입니까? 2) 테스트 배열을 먼저 초기화해야합니다.

String test[] = new String[5]; // or any other number 
관련 문제