ObjectInputStream.readFields()
只能在 private void readObject(ObjectInputStream)
方法内使用。
public ObjectInputStream.GetField readFields() throws IOException, ClassNotFoundException {
SerialCallbackContext ctx = curContext;
if (ctx == null) {
throw new NotActiveException("not in call to readObject");
}
...
我现在的情况是无法使用默认的序列化方式来读取对象(例如
ObjectInputStream.defaultReadObject()
),但我又不想在所有类中实现readObject()
方法。在理想情况下,我希望有一个ownDefaultReadObject()
方法,可以通过反射从序列化的字段构建新的对象。您有什么好的想法吗?
如果有人想了解更多信息。我的某些类中的字段名称已被重命名(例如通过模糊器)。这些类是使用默认的Java序列化方式进行序列化的,需要将它们反序列化为原始类(我知道每个类的字段名称对应关系;例如a => fieldName,b => age,c => gender等)。
readObject()
的原因是什么? - user207421