提问者:小点点

JVM抛出不序列化异常的条件是什么?[重复]


有谁能解释一下JVM在什么情况下抛出notserializableexception。

例句

class Emp implemenst Serializable
{
   Address address = new Address();
}

class Address 
{
   Strign address;
}

在上述情况下,JVM会因为地址类不可序列化而抛出异常吗?

有人能解释一下吗?


共2个答案

匿名用户

问题是address没有实现Serializable,所以你必须实现它或者在Emp内部将Address标记为transient,这基本上意味着忽略serialization中的成员。

在这里阅读: https://en.wikibooks.org/wiki/Java_Programming/Keywords/transient

--

匿名用户

如果您想用Java序列化一个对象,那么该对象中的每个字段(及其字段,等等..)必须实现可序列化的接口。我们可以说每个对象都是单独序列化的。

这就是Java抛出这个异常的原因——其中一个字段是不可序列化的。