Java 发送对象时出现NotSerializableException
我想创建一个实例,将它放在一个容器中并发送它Java 发送对象时出现NotSerializableException,java,objectoutputstream,notserializableexception,Java,Objectoutputstream,Notserializableexception,我想创建一个实例,将它放在一个容器中并发送它 TransferContainer container = null; ... Class aClass = container.getByteCode(); o = aClass.newInstance(); ....// Some code ... container.setInstance(o); ObjectOutputStream out = new ObjectOutputStream(
TransferContainer container = null;
...
Class aClass = container.getByteCode();
o = aClass.newInstance();
....// Some code
...
container.setInstance(o);
ObjectOutputStream out = new ObjectOutputStream(_s.getOutputStream());
out.writeObject(container);
我得到这个错误
java.io.NotSerializableException
如果我不在容器中添加实例o,我可以毫无问题地发送它
出现此异常的原因是aClass或aClass的某个实例字段未实现可序列化。请阅读有关第一点的详细信息,使其可序列化正确,在这种情况下这是正确的错误,您的问题是什么?为了更快地获得更好的帮助,请提供一个演示反问题的示例。类aClass=container.getByteCode;这个问题似乎离题了,因为它是关于无法阅读文档的。aClass可以是用户给定的任何类,class aClass=container.getByteCode@好的。但是如果你想序列化它,它的所有实例字段都必须实现可序列化,或者如果它们不是必需的,则使它们成为临时字段,否则这是预期错误。@user567那么你的设计是错误的。您只能允许可序列化的类。如果它是您正在发布的某种API,则还应正确记录它,以便用户在发送任何类之前知道这一事实。