在java中,得到了一个对象,这个对象的类不是我定义的,没有序列化,我有没有办法将这个对象写到文件上,下次用的时候读出这个对象?
没有序列化是有原因的,有些对象并不能被序列化。比如我们用一个对象来关联一个进程,实现对操作系统进程操作的包装。这个对象包含进程id这样的字段,以及诸如复制进程、停止进程这样的方法。那么这样的对象就不能序列化。
因为序列化没有意义。你将这个对象的存储全部dump下来,重新开机,这个进程id还有意义么?
同样的场景还发生在那些GUI类型上面、网络通讯的类型上面,它们并不是纯粹的Java对象。
当然,你可以强行去系列化这样的对象,反射遍历字段,然后保存。反之类似。当然我说了,如果一个类型不支持序列化,肯定有深层次的原因,简单的对属性的保存和恢复得到的未必是可用的。