getSize期间出现NullPointerException

时间:2015-10-31 20:26:14

标签: java

我遇到了麻烦。我想知道如何解决它约2小时,我仍然一无所知。你能帮帮我们吗? 我再次写了这段代码,但它没有改变任何东西,仍然不知道我在哪里弄错了。

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

有什么想法吗?感谢帮助!

2 个答案:

答案 0 :(得分:1)

public ArrayList<String> tablica;

永远不会被初始化,因此当您调用

时为空
int g = dodaj.tablica.size();

将声明更改为

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

另请注意,通常建议对接口进行编码,因此首选List作为类型而不是ArrayList。

此外,请使用getter / setter将您的成员设为私有。

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

答案 1 :(得分:1)

你应该初始化ArrayList!

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