Java Annotation 接口不扩展Serializable
。但是,Java 注释值是可序列化的(使用java.lang.reflect.Proxy
, 和可序列化的调用处理程序实现)。
这在任何地方都有保证吗?我的 search-foo 找不到参考。或者如果我需要安全地序列化注解实例,是否需要创建自己的序列化代理?
Java Annotation 接口不扩展Serializable
。但是,Java 注释值是可序列化的(使用java.lang.reflect.Proxy
, 和可序列化的调用处理程序实现)。
这在任何地方都有保证吗?我的 search-foo 找不到参考。或者如果我需要安全地序列化注解实例,是否需要创建自己的序列化代理?
java.lang.reflect.AnnotatedElement
are方法返回的注解对象Serializable
。这就是API 所说的:该接口允许以反射方式读取注释。此接口中方法返回的所有注解都是不可变和可序列化的。
所有能够返回注解对象(Class、Constructor、Field、Method、Package、Parameter)的类都实现了AnnotatedElement,并且有义务按照上述约定创建/返回Serializable对象。
注释是类定义的一部分,因此在序列化具有注释的类的实例时永远不会被写入序列化流(至少不是标准的 java 序列化)。
更新:我想我错过了原始问题的要点,即专门序列化实际注释的实例。