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