未经检查的Cast防止在自定义对象的ArrayList上构建ObjectInputStream.readObject

时间:2018-04-28 08:52:59

标签: java android arraylist load

我有一个非常简单的函数loadPlants(),可以从内存中加载ArrayList<Plant>

public void loadPlants() {
    try {
        FileInputStream fIS = this.openFileInput("plantArrList");
        ObjectInputStream oIS = new ObjectInputStream(fIS);
        myPlantList = (ArrayList<Plant>)oIS.readObject();
        oIS.close();
        fIS.close();
    } catch (IOException|ClassNotFoundException ie) {
        ie.printStackTrace();
    }
}

我收到了myPlantList = (ArrayList<Plant>)oIS.readObject();的错误。这是说我有一个未经检查的演员,这是真的,但问题是它不会让我像这样运行应用程序。我确信这将始终是ArrayList<Plant>类型,有没有办法绕过这个?或者也许是我失踪的东西?我已经尝试将数据分配给临时对象,然后将其转换为ArrayList<Plant>,并对所有可能的情况进行严格嵌套的if语句测试,但这些都没有。

0 个答案:

没有答案