Java注释是可序列化的吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

Java 注释接口不扩展Serializable。但是,Java注释值是可序列化的(使用java.lang.reflect.Proxy可串行化的调用处理程序实现)。

这有保证吗?我的search-foo无法找到参考。或者,如果我需要安全地序列化注释实例,是否需要创建我自己的序列化代理?

提问于
用户回答回答于

由方法返回的注释对象java.lang.reflect.AnnotatedElementSerializable。这就是API所说的这个接口允许反射地读取注释。这个接口中的方法返回的所有注释都是不可变的,可序列化的

所有能够返回注解对象的类(Class,Constructor,Field,Method,Package,Parameter)都实现AnnotatedElement,并且有义务按上述合约创建/返回Serializable对象。

用户回答回答于

注释是类定义的一部分,因此在序列化具有注释的类的实例时,永远不会将其写入序列化流(至少不用标准java序列化)。

我想我错过了原来的问题,指的是具体序列化实际注释的实例。

扫码关注云+社区