【问题标题】:What are the condiions in which JVM throw notserializableexception? [duplicate]JAVA抛出notserializableexception的条件是什么? [复制]
【发布时间】:2016-10-26 18:19:23
【问题描述】:

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

例子

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

class Address 
{
   Strign address;
}

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

谁能解释一下?

【问题讨论】:

标签: java serialization


【解决方案1】:

问题是Address没有实现Serializable,所以你必须实现它或将Emp内部的地址标记为瞬态,这基本上意味着忽略序列化的成员。

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

--> 如果成员没有实现 Serializable 或不是瞬态的,Java 将抛出异常。

【讨论】:

  • 但同时当员工扩展地址类时,它不会抛出异常..为什么?(我知道这不是真实的例子)
【解决方案2】:

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

这就是 Java 在您的情况下抛出此异常的原因 - 其中一个字段是不可序列化的。

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 2015-07-14
    • 2015-07-08
    • 2013-01-03
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多