Java Graphics2D无法序列化

Java Graphics2D无法序列化,java,Java,爪哇: 如何序列化图形2D?我正在制作一个platformer游戏,我想要一个使用序列化的保存/加载系统 java.io.NotSerializableException: sun.java2d.SunGraphics2D 它将打印此异常。有没有办法序列化图形2D 否,Graphics2D(以及处理图形、声音或网络的其他类)的实例通常不可序列化。您应该尝试将需要保存的数据与处理渲染的代码分开 如果不可能,则应将Graphics2D字段标记为transient。这样,在保存时,序列化系统

爪哇:

如何序列化图形2D?我正在制作一个platformer游戏,我想要一个使用序列化的保存/加载系统

    java.io.NotSerializableException: sun.java2d.SunGraphics2D

它将打印此异常。有没有办法序列化图形2D

否,
Graphics2D
(以及处理图形、声音或网络的其他类)的实例通常不可
序列化。您应该尝试将需要保存的数据与处理渲染的代码分开


如果不可能,则应将
Graphics2D
字段标记为
transient
。这样,在保存时,序列化系统将跳过
Graphics2D
字段。加载后,您可以将
Graphics2D
字段设置为手动创建的新实例。

否,
Graphics2D
(以及处理图形、声音或网络的其他类)的实例通常不可
序列化。您应该尝试将需要保存的数据与处理渲染的代码分开


如果不可能,则应将
Graphics2D
字段标记为
transient
。这样,在保存时,序列化系统将跳过
Graphics2D
字段。加载后,您可以将
Graphics2D
字段设置为手动创建的新实例。

您是否尝试过使用
createGraphics()
而不是
getGraphics()
getGraphics()
是为了向后兼容而维护的,但不建议使用它

您是否尝试过使用
createGraphics()
而不是
getGraphics()
getGraphics()
是为了向后兼容而维护的,但不建议使用它

我应该把它放在哪里?在to=He之前,您将
transient
放在您正在序列化的类中类型
Graphics2D
字段的定义中。private void init(){image=new BufferedImage(WIDTH,HEIGHT,BufferedImage.type_INT_RGB);g=(Graphics2D)image.getGraphics();running=true;rms=new RoomManager(this)}这会产生一个错误,表示图像不可序列化。我已将其标记为瞬态…必须将
image
g
标记为
transient
。此外,您还应确保RoomManager没有任何不可序列化的字段(如直接引用
图像
g
)。对不起,我有另一个名为
图像
的缓冲图像。我修好了。它现在可以工作了:)我应该把它放在哪里?在to=He之前,您将
transient
放在您正在序列化的类中类型
Graphics2D
字段的定义中。private void init(){image=new BufferedImage(WIDTH,HEIGHT,BufferedImage.type_INT_RGB);g=(Graphics2D)image.getGraphics();running=true;rms=new RoomManager(this)}这会产生一个错误,表示图像不可序列化。我已将其标记为瞬态…必须将
image
g
标记为
transient
。此外,您还应确保RoomManager没有任何不可序列化的字段(如直接引用
图像
g
)。对不起,我有另一个名为
图像
的缓冲图像。我修好了。现在可以了:)如果可以的话,你应该集中精力保存状态而不是对象。如果可以的话,你应该集中精力保存状态而不是对象。