爪哇:
如何序列化 Graphics2D?我正在制作一个平台游戏,我想要一个使用序列化的保存/加载系统。
java.io.NotSerializableException: sun.java2d.SunGraphics2D
它打印此异常。有没有办法序列化Graphics2D?
爪哇:
如何序列化 Graphics2D?我正在制作一个平台游戏,我想要一个使用序列化的保存/加载系统。
java.io.NotSerializableException: sun.java2d.SunGraphics2D
它打印此异常。有没有办法序列化Graphics2D?
不,Graphics2D
(以及处理图形、声音或网络的其他类)的实例通常不是Serializable
. 您应该尝试将需要保存的数据与处理渲染的代码分开。
如果这不可能,那么您应该将您的Graphics2D
字段标记为transient
. 这样,序列化系统在保存时会跳过该Graphics2D
字段。加载后,您只需将该Graphics2D
字段设置为您手动创建的新实例。
您是否尝试过使用createGraphics()
而不是getGraphics()
?getGraphics()
为向后兼容而维护,但不推荐使用它