java - 用可序列化函数包装不可序列化类型

标签 java scala serialization

给定:

trait SomeTypeNotSerializable
trait ValueProvider[T] extends java.io.Serializable {
  def get: T
}

ValueProvider[SomeTypeNotSerialized] 是否可序列化?有没有办法通过用函数包装对象来解决不可序列化的问题?

最佳答案

根据规则,它是可序列化的,但是如果您将该T存储为非 transient 字段,它会在运行时失败。如果 T 是 transient 的或者没有字段支持(例如,在每次调用 get 时创建),那么你应该没问题,尽管我仍然很好奇为什么你想要序列化服务对象,这不是通常的做法。

关于java - 用可序列化函数包装不可序列化类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57173810/

相关文章:

C++ boost json ptree 解析器无法解析字符串

java - C# 和 Java 之间通过 protobuf-net 进行序列化/解封

java - Java内存模型中线程发散 Action 和外部 Action 的例子

java - 使用继承时存储 'employee code' 的公共(public)值

java - 从一个构造函数调用另一个构造函数有什么优点和缺点吗?

java - 使用java的-XX :OnError option

Scala 集合选择元素,直到第一个满足要求

scala - 为什么Scala除了零参数方法还需要无参数方法?

Scala 模式匹配混淆

serialization - 戈多/Gdscript : Why is str2var not working on classes with _init method?