2014-11-24 4 views
1

Я пытаюсь сохранить состояние игры, сериализуя игровой объект, содержащий 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(); 
    } 
} 

Спасибо!

+2

Отметьте атрибуты, которые вы не хотите сериализовать как «переходный». V.g., 'private transient BufferedImage alienImage;'. – SJuan76

+0

Это прекрасно работает, большое вам спасибо! – cogm

+0

Это должен быть ответ – ksmonkey123

ответ

0

Это ответили в комментариях, поэтому я отправлю его здесь, чтобы закрыть вопрос.

Отметьте атрибуты, которые вы не хотите сериализовать как переходные. V.g., частный переходный режим BufferedImage alienImage ;. - SJuan76

Смежные вопросы