我有几个3D对象被添加到TransformGroup
。三维对象不作为变量存在,而是通过new Sphere()
添加到TransformGroup
中,而TransformGroup
类不实现Serializable
接口。那么,我应该如何能够序列化我的对象到一个文件,并在读取文件时访问我的对象?
注:我真的不知道如何序列化到XML文件,我不确定这是否是我需要的一个好选择。
不仅是TransformGroup
,而且您的单个原语(如Sphere
)也都缺少Serializable
接口。因此,尽管您可以很容易地获得所有子节点的列表,但序列化该列表并不是一个很大的进步。对象看起来像Java bean,至少乍一看是这样。如果它们确实存在,那么您可以使用XMLEncoder
来序列化它们。注意,以这种方式生成的XML可能包含很多任意的Java命令,因此从不受信任的源反序列化这样的文件可能存在安全隐患。我猜有第三方Bean编码器可以避免这个问题。但是XMLEncoder
可能是一个合理的第一步,看看这是否有效,或者如果没有,它在哪里失败。