Не проверено приведение, предотвращающее сборку ObjectInputStream.readObject для ArrayList пользовательских объектов - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть очень простая функция 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 для всех возможных случаев, но ни один из них не сработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...