首页 > 编程知识 正文

元数据注解,java序列化

时间:2023-05-05 20:47:18 阅读:175376 作者:779

@Retention定义保留此Annotation的时间长度。

1 .有些Annotation只出现在源代码中,被编译器丢弃;

2 .其他一些将编译为class文件,注释将保留在class文件中,并在加载到JVM虚拟机中时丢弃。 这是缺省行为,因此没有使用Retention注释的注释将采用此策略

某些类型的class在加载时会被读取。 注释在程序运行时仍会保留,并且可以通过反射获取类中定义的所有注释

角色:用于指示应在什么级别存储注释信息,并描述注释的生命周期。 也就是说,它指示所写的注释在什么范围内有效

取值(RetentionPoicy )如下所示。

1.SOURCE:在源文件中有效。 这意味着将保留源文件

2.CLASS:在class文件中有效(即class预约)。

3.RUNTIME:在运行时有效(即运行时挂起) ) )。

“保留元数据-身份”类型具有唯一的值作为成员

此值来自Java.lang.annotation.retention policy的枚举类型的值。 具体例子如下。

//*

*限流注释

*/

@target(elementtype.method ) )。

@ retention (retention policy.runtime ) )。

@Documented

公共@ interface rate limit {

//*

* @ returnratelimitinqueriespersecond

*/

String value () default ' );

double permits () default 1000;

}

由于RateLimit注释的RetentionPolicy的属性值为RUNTIME,因此注释处理器可以通过反射获得注释的属性值,并进行执行时的逻辑处理

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。