草庐IT

writeObject

全部标签

java - 序列化 - readObject writeObject 覆盖

编写完下面的代码后,我现在必须使用StudentData中的自定义readObject()和writeObject()覆盖方法来读取和写入对象的变量。无需使用defaultWriteObject或defaultReadObject方法来执行此操作。问题是我不完全理解被要求做什么。我已阅读UsesofreadObject/writeObjectinSerialization但我无法理解它。有人能指出我正确的方向吗?我的代码:importjava.io.*;//importinginput-outputfilesclassStudentimplementsjava.io.Serializa

java - 为什么 readObject 和 writeObject 是私有(private)的,为什么我要显式地编写 transient 变量?

我正在阅读EffectiveJava中的序列化章节。谁调用了readObject()和writeObject()?为什么将这些方法声明为私有(private)?以下是书中的一段代码//StringListwithareasonablecustomserializedformpublicfinalclassStringListimplementsSerializable{privatetransientintsize=0;privatetransientEntryhead=null;//OthercodeprivatevoidwriteObject(ObjectOutputStreams

java - 为什么 readObject 和 writeObject 是私有(private)的,为什么我要显式地编写 transient 变量?

我正在阅读EffectiveJava中的序列化章节。谁调用了readObject()和writeObject()?为什么将这些方法声明为私有(private)?以下是书中的一段代码//StringListwithareasonablecustomserializedformpublicfinalclassStringListimplementsSerializable{privatetransientintsize=0;privatetransientEntryhead=null;//OthercodeprivatevoidwriteObject(ObjectOutputStreams

java - 当我们可以在 java 中覆盖 writeObject 和 readObject 时,为什么我们有 Externalizable

既然我们可以通过覆盖writeObject()和readObject()来覆盖默认的序列化过程,那么Externalizable接口(interface)需要什么? 最佳答案 实现Serializable的类可能或可能不希望更改该类的实例写入流的格式。但是,实现Externalizable的类必须实现writeExternal和readExternal方法,以及类的负责向/从流中写入和恢复数据。 关于java-当我们可以在java中覆盖writeObject和readObject时,为什

java - iostream 和 read/writeObject 调用的基础知识

我正在设计一个java服务器来响应多个客户端请求。所以设计基本上有一个服务器套接字,接受一个客户端套接字,从客户端输入/输出流创建一个输入对象流和一个输出对象流。然后我在客户端使用writeobject发出请求,在服务器上使用readObject接收请求。处理它,将对象写回到与响应相同的流上,并在客户端读取对象以处理响应。现在,如果我在android模拟器/设备上运行代码可以正常工作。如果我在“androidjunitjava测试用例”上运行相同的代码,在它处理我的所有请求后我会得到一个异常。异常发生在服务器端的readObject调用。java.io.EOFExceptionatja

java - 为什么 writeObject 会抛出 java.io.NotSerializableException,我该如何解决?

我有这个异常,但我不明白为什么会抛出它,或者我应该如何处理它。try{os.writeObject(element);}catch(IOExceptione){e.printStackTrace();}其中element是一个TransformGroup包含一些其他TransformGroups类Atom的实例:publicclassAtomextendsGroupimplementsSerializable{floatpozX,pozY;Groupgroup=newGroup();Color3fblue=newColor3f(newColor(255));Color3fblack=n
12