无法从通用列表中创建JSON(使用Gson)

时间:2017-10-11 12:36:44

标签: java json gson

我制作了一个通用列表类:

public class FahrzeugListe<T extends Fahrzeug> implements TableModel {

private T[] array;
private int nextFreeSlot = 0;

private List<TableModelListener> tableListener = new ArrayList<TableModelListener>();

public FahrzeugListe(int capacity){
    array = (T[]) new Fahrzeug[capacity];
}

public void add (T o){
    if(nextFreeSlot == array.length){
        throw new IllegalStateException("Liste ist voll!");
    }
    array[nextFreeSlot] = o;
    nextFreeSlot++;
    for(TableModelListener l : tableListener){
        l.tableChanged(new TableModelEvent(this));  /
    }
}

它不是全班,但我想,它是我问题的重要部分。 我有另一个课程来制作那些&#34; Fahrzeug&#34; -objects,例如汽车或公共汽车...... 我通过GUI将这些对象添加到此列表中,并且在我的GUI中添加了一个按钮,我想将此列表保存到JSON,因此,当我再次启动我的程序时,我可以先从列表中取出信息,然后使用它。 在我的GUI类中,我为按钮实现了以下方法&#34; Save&#34;:

private class SaveListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {

        String json = new Gson().toJson(fahrzeugListe);
        System.out.println("The text, should be written in jason: " +json);
    }
}

不知怎的,我收到此错误消息:

线程中的异常&#34; AWT-EventQueue-0&#34; java.lang.StackOverflowError的

有人可以帮我吗? :)

1 个答案:

答案 0 :(得分:0)

private transient List<TableModelListener> tableListener = new ArrayList<TableModelListener>();

我添加了关键字transient,现在一切正常xD