如果类包含 "Object" 字段,如何使类可序列化


public class A implements Serializable
{
    private static final long serialVersionUID = 1L;
    private Object value;
    private Type type;
....
}

它包含了不可序列化的"Object",所以类A将被呈现为不可序列化的。

"对象值"可以是Integer, String…,取决于"Type Type "

如何使A可序列化?提前感谢!

编辑:将"对象值"丢失(当反序列化),如果使用"私有瞬态对象值"?我可不想把它弄丢了。

是否有一个通用的可序列化对象类型?

"Object value"可以是Integer, String…

Integer和String都是可序列化的。它会成功的。您不需要做任何特殊的事情来序列化它们。

是否有一个通用的可序列化对象类型?

是的,序列化:

private Serializable value;

transient关键字服务器

private transient Object value;

另一种方法是使对象静态,如果它不代表你的实例。静态变量隐式transient

将"对象值"丢失(当反序列化),如果使用"私有瞬态对象值"?我可不想把它弄丢了。

如果不序列化变量,它的值将丢失。序列化保存类实例的状态。当实例将被反序列化时,它将具有Object值,但它将被初始化为默认值,即null。所以,是的,这个值将会丢失,无论如何,这就是将变量设置为瞬态的目的。

可以使用transient关键字跳过字段的序列化:

private transient Object value;

最新更新