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