Я пытаюсь сохранить состояние игры, сериализуя игровой объект, содержащий ArrayList врагов. Каждый из элементов в ArrayList является объектом, и каждый из этих объектов содержит BufferedImage для представления врага. Java выдает ошибку, что BufferedImages не сериализуемы. Все решения, которые я нашел, говорят, что просто создайте новый объект и заполните его всеми данными, кроме изображений, но я не уверен, насколько это возможно с настройкой списка.Сериализация ArrayList объектов с BufferedImages
public void saveGame(){
GamePanel game = new GamePanel();
game.enemyList = enemyList;
game.player = new Player(this.getWidth(), this.getHeight());
game.player.setScore(player.getScore());
game.player.setPos(player.getX(), player.getY());
try{
FileOutputStream fileOut = new FileOutputStream("savegame.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(game);
out.close();
fileOut.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
Спасибо!
Отметьте атрибуты, которые вы не хотите сериализовать как «переходный». V.g., 'private transient BufferedImage alienImage;'. – SJuan76
Это прекрасно работает, большое вам спасибо! – cogm
Это должен быть ответ – ksmonkey123