2015-10-31 32 views
0

我有麻烦了。我想知道如何修复它约2个小时,我什么都不知道。你能帮助我吗? 我已经再次编写了这段代码,但它没有改变任何东西,仍然不知道我在哪里犯错。getSize期间出现NullPointerException

public class Historia { 
public ArrayList<String> tablica; 

public void odczyt() throws IOException, ClassNotFoundException { 
    ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("skarbonka.bin")); 
    tablica = (ArrayList<String>) objectInputStream.readObject(); 
    objectInputStream.close(); 
    int size = tablica.size(); 
    for(int i = 0; i<size; i++){ 
     System.out.println(tablica.get(i)); 
    } 

} 

有二类:

public class Zapis { 
private GregorianCalendar gregorianCalendar = new GregorianCalendar(); 
private Scanner scanner = new Scanner(System.in); 
private Historia dodaj = new Historia(); 

public void plik() throws IOException { 
    Dane dane = new Dane(); 
    ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("skarbonka.bin")); 
    ArrayList<String> arrayList = new ArrayList<String>(); 
    dane.kwota = scanner.nextInt(); 
    dane.dzien = String.format("%tc", gregorianCalendar); 
    int g = dodaj.tablica.size(); 
    for(int i=0; i<g; i++){ 
     arrayList.add(""); 
     arrayList.set(i, dodaj.tablica.get(i)); 
    } 

    arrayList.add(dane.toString()); 
    objectOutputStream.writeObject(arrayList); 
    objectOutputStream.close(); 
} 

}

There's the error

任何想法?感谢帮助!

回答

0

public ArrayList<String> tablica; 

从未初始化,因此,当你调用

int g = dodaj.tablica.size(); 

更改声明

private List<String> tablica = new ArrayList<String>(); 

另外请注意,它通常是最好的代码对接口空,所以更喜欢List作为类型而不是ArrayList。

此外,让你的会员私人与getters/setters。

一般来说,你的代码对我来说没有多大意义,你打算做什么很有意思?

+0

它必须是一个存钱罐,它显示我的帐户状态和当天发生了变化。 感谢您的帮助,但现在我注意到下一个差距。我的输入只显示最后一项。为什么?我想(int i = 0; i

0

你应该初始化ArrayList!

ArrayList<Object> list =new ArrayList<Object>(); 
+0

谢谢队友!但现在我注意到下一个差距。我的输入只显示最后一项。为什么?我想(int i = 0;我

相关问题