Как безопасно десериализировать список с ObjectInputStream без неконтролируемых предупреждений?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как безопасно десериализировать список с ObjectInputStream без неконтролируемых предупреждений?

Сообщение Anonymous »

Я работаю над проектом Java, где мне нужно сохранить и загружать данные (список Compte объектов) с использованием сериализации.
Мой метод загрузки данных выглядит так:

public static List loadData(String filename) throws IOException {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename))) {
Object obj = ois.readObject();
return (List) obj;
} catch (ClassNotFoundException e) {
throw new IOException("Data format error", e);
}
}
< /code>

Что я хочу < /h4>
[list]
[*] Я хочу, чтобы этот метод прочитал сериализованный файл и вернул список объектов Compte. < /p>
< /li>
Я хочу, чтобы он был безопасным, поэтому я не сталкиваюсь с проблемами. />[/list]
The problem

When I compile, I get this warning:

Type safety: Unchecked cast from Object to List

I understand this happens because readObject() only returns Object и Java не может проверить общий тип () во время выполнения из -за стирания типа.

Мой вопрос

  • Какова лучшая практика для обработки этой ситуации? /> < /ul>
    дополнительная информация < /h4>
    -это сериализуемый класс.
  • Я сохраняю данные с использованием objectOutputStream с чем-то вроде:

    Код: Выделить всё

    try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename))) {
    oos.writeObject(listOfComptes);
    }
    
    Таким образом, файл всегда должен содержать список .


Подробнее здесь: https://stackoverflow.com/questions/797 ... t-unchecke
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»