我身边有一个期待,但似乎没有任何能盖住我希望做的。 是否有可能保存一个Class<?>
在运行时实例对象? 如果是的话我怎么会去这样做呢?
Answer 1:
你通过序列化的概念使用Java不见了。 这个链接将帮助你在你的问题。
总之Java.lang.Serializable是你的朋友这样做。
Answer 2:
这是一组关于Java序列化而不是答案的评论。 在其他的答案只是一些信息(还)没有。
序列化不仅节省了一个对象,它保存了所有它引用,直接和间接的对象。 这可能是真的很酷,但你可以写一个小objectette,找到你意外地创建了一个10MB的文件。
如果有一个参考,但是间接的,在你写的一个的非序列化对象,写会抛出异常。
如果您使用的是插座,定期重设的ObjectOutput流。 否则,每一次的对象是比第一次写等,并发送给所有的原始数据的参考。 发送相同的对象用的1,2 4 5连续值,图3,和,和该对象读出将具有1的值,1,1,1和1。此外,没有复位时,存储器使用将飙升因为两者的ObjectOutput并且将的ObjectInput保留在内存中发送几乎一切。 (虽然这将只保留每个不同对象的一个副本。)
如果被写入间的类别变化和读取序列化不起作用。 与外部化聪明的工作可以解决这个问题,但是。 (记住的serialVersionUID如果你的IDE会让你忘了。)
外部化可以让你写的代码序列化的类。 这是非常有用的。 你可以把版本号,并检查他们,你可以离开了不是不需要,也可以在阅读的时候重新创建数据。 这需要比自动序列更多的工作,虽然。
如果做一个外化的读,要知道,所有的参考可指代对象,它们的数据尚未到来; 你不能一直从子对象的列表总结金额,例如。 它可能支付调用一个方法之后的readObject设置一个需要计算值。 (这往往不如送,而不是重新计算冗余信息。)
我了解到这一切艰辛的道路。
Answer 3:
我了解了系列化 ,从这个网站 。 它教的概念很好。 我建议开始出现。