代号1:存放EOF&空指针异常

时间:2016-10-21 13:12:39

标签: codenameone

我无法将列表存储在存储中,然后在我的应用程序重新启动后加载它。这就是我所做的:

在应用程序的每次启动时,我都会这样做,检查数据是否已写入存储,如果没有,我会返回一个新列表。

public List loadSavedFormationList(){
        String[] temp = Storage.getInstance().listEntries();
        for(String s: temp){
            if(s.equals("Formations") == true){
                return (LinkedList<SongList>)Storage.getInstance().readObject("Formations");
            }
        }
        return new LinkedList<SongList>();
}

当用户在我的应用程序中输入了一个FormationList时,我这样做是为了将其保存到存储中:

Storage.getInstance().writeObject("Formations", formationList);

现在,当我重新启动App时,我收到了java.io.EOFException + java.lang.NullpointerException。看来他试图从存储中读取我的Formations List,但它是空的,但为什么呢?在应用程序的第一次启动时,存储应为空。模拟器是否还将我在其他时间输入的内容保存到应用程序中?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

Codename One存储ArrayList而非LinkedList并将隐式转换。我猜这些数据没有被写入,这就是你得到异常的原因,你需要在编写时查看控制台并确保所有元素都可以外部化。