Min*_*ock 3 java serializable transient
transient在没有实现的类中使用关键字有意义Serializable吗?
因为没有实现的类Serializable仍然可以被ObjectOutputStream.
小智 5
出于多种原因,您可能仍希望将其标记为瞬态。立即想到的两个是:
它可以帮助传达该领域的语义目的。即,它可以帮助任何阅读您代码的人了解变量的含义
第三方库可能会使用关键字。例如,Google 的 Gson 库可以将任何对象序列化/反序列化到 JSON 或从 JSON 中序列化,无论它是否实现了 Serializable。在这种情况下,Gson 将(默认情况下)跳过标记为瞬态的字段。
因为没有实现的类
Serializable仍然可以被ObjectOutputStream.
这是不正确的。那会抛出一个NotSerializableException.
原因writeObject()是签名Object来自实现独立于序列化定义的Serializable接口。ObjectOutput但是,它会阻止ObjectOutputStream更改其签名。
public interface ObjectOutput {
// ...
void writeObject(Object obj);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |