여기에 제가 가진 코드가 있습니다.Java 파일로 ArrayList를 인쇄 할 클래스를 만듭니다
이 여기 내 메인 클래스 내 PrintToFile이 클래스
import java.util.*;
import java.io.*;
public class PrintToFile{
File f;
FileWriter fw;
PrintWriter pw;
public void PrintToFile()throws Exception{//remove void from constructor
File f = new File ("Output.txt");//dont reinitialize
FileWriter fw = new FileWriter(f, true);//dont reinitialize
PrintWriter pw = new PrintWriter(fw);//dont reinitialize
}
public void printExp(ArrayList<Expense> expList){
for(int i = 0; i < expList.size(); i++){
pw.println("---------------------------------------");//exception here
pw.println(expList.get(i));
}
pw.close();
}
}
이다 나는 개체
예외의 ArrayList를로 expList을 정의
PrintToFile printer = new PrintToFile();
printer.printExp(expList);
내 ArrayList를 인쇄하기 위해 내 전화입니다 나는 ~이다
Exception in thread "main" java.lang.NullPointerException
0 표시된 곳에서
이 발생합니다. 내 질문은이 예외의 원인이 무엇입니까? 감사합니다
모두에게 감사드립니다. downvote에 대해 확실하지 ?? 하지만 모든 답변 덕분에 지금은 완벽하게 작동합니다. –
+1 어쩌면 누군가가 들여 쓰기 스타일에 대해 징징 대고 있습니다.) – paiego
변수를 "선언"할 때마다 (예 : File - 데이터를 변수 앞에 놓음)) 새로운 변수를 만듭니다. 따라서 File 유형의 "f"라는 변수가 2 개 있습니다. 변수가 선언되면 변수를 둘러싸는 범위가 중괄호로 묶여 있습니다. 대괄호가 종료되면 변수는 범위를 벗어납니다. 변수 이름이 충돌하면 가장 작은 범위가 우선합니다. 따라서 PrintToFile() 생성자의 "File f"가 "File f"클래스 변수를가립니다. – paiego