2012-12-12 1 views
0

문자열 배열에 문제가있어이를 목록 (목록)에 추가하려고합니다. 아래는 사용 된 코드이며 문제를 만드는 코드입니다.Odd Java String [] 문제, 값을 포함하고 있지만 목록에 삽입 할 때 null과 같은 역할을합니다. <String[]>

루프를 처음 실행할 때 프로그램이 실패하고 OpenCSV를 사용하여 CSV에서 가져온 입력을 확인했습니다.

List<String[]> output = null; 
String[] temp; 

for(int i = 0; i < 13; i++) 
{    
    temp = reader.readNext();       //read next line into temp 
    System.out.println(temp[0]+temp[1]+temp[2]);  //temp output 
    temp[2] = String.valueOf((values[i])/100);   //assign new value 
    System.out.println(temp[0]+temp[1]+temp[2]);  //temp output 
    output.add(temp); 
} 

이 코드를 실행하면 결과가 출력됩니다.

VANCBULLET0.311 
VANCBULLET0.308 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at Main.updateCSV(Main.java:951) 
    at Main.start(Main.java:863) 
    at Main.access$23(Main.java:853) 
    at Main$23.actionPerformed(Main.java:520) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 

처음 두 줄

올바른지과 같이 분할되어 등 ( 온도 [0] 온도 [1] 온도 [2] VANC 탄환 0.311 VANC 탄환 0.308

문제가

output.add(temp); 

문서 읽기 :

NullPointerException - if the specified element is null and this list does not permit null elements 
오류에) 읽기

하지만 내 출력 (두 번째 줄)에서 볼 수 있듯이 "temp"배열은 null이 아니며 각 요소에 각각 "VANC BULLET 0.308"이 포함되어 있습니다.

내가 곤혹 스럽다. 누구든지 아이디어가 있거나 내가 보지 못한 것을 본 적이 있습니까?

덕분에 내가 코드에서 List<String[]> output = null; 초기화 결코 볼 수있는에서

+0

이것은 컴파일되지 않습니다. 'temp = reader.readNext(); 그러나 나는 당신이 '임시직'에게 가치를 부여하지 않는다고 의심한다. –

답변

6

.

List<String[]> output = new ArrayList<String[]>(); 
+2

젠장, 빠르다! :) –

+0

아, 그 실종에 대한 거짓말 같은 느낌 : (웃음. 고마워요!) – ck1221

+0

@ ck1221 당신은 오신 것을 환영합니다 :) – PermGenError

1

목록 ouput은 널 (null)

List<String[]> output = null; 

으로 그리고 루프에 정의되어 목록이 여전히 널대로의 List.add 호출 할 때 따라서는 NPE가 발생

는 먼저 초기화 output에 값을 추가하려고합니다.

출력 개체를 초기화하십시오.

List<String[]> output = new ArrayList<String[]>(); 
관련 문제