Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用BuffereImage序列化对象的ArrayList_Java_Serialization_Bufferedimage - Fatal编程技术网

Java 使用BuffereImage序列化对象的ArrayList

Java 使用BuffereImage序列化对象的ArrayList,java,serialization,bufferedimage,Java,Serialization,Bufferedimage,我试图通过序列化包含敌人数组列表的游戏对象来保存游戏状态。ArrayList上的每个项目都是一个对象,每个对象都包含一个BuffereImage来表示敌人。Java抛出一个错误,即BuffereImage不可序列化。我找到的所有解决方案都说只需创建一个新对象,并用除图像之外的所有数据填充它,但我不确定设置列表后这有多大可能 public void saveGame(){ GamePanel game = new GamePanel(); game.enemyList = enem

我试图通过序列化包含敌人数组列表的游戏对象来保存游戏状态。ArrayList上的每个项目都是一个对象,每个对象都包含一个BuffereImage来表示敌人。Java抛出一个错误,即BuffereImage不可序列化。我找到的所有解决方案都说只需创建一个新对象,并用除图像之外的所有数据填充它,但我不确定设置列表后这有多大可能

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();
    }
}

谢谢

这一点在评论中得到了回答,因此我将在这里重新发布以结束问题


将不希望序列化的属性标记为瞬态。例如,专用瞬态缓冲区映像alienImage;——四川76


将不希望序列化的属性标记为瞬态属性。例如,
私有瞬态缓冲区映像alienImage。非常好用,非常感谢!这应该是一个答案