不同的保留策略如何影响我的注释? [英] How do different retention policies affect my annotations?
问题描述
谁能清楚地解释java.lang.annotation.RetentionPolicy
常量SOURCE
、CLASS
和<代码>运行时间代码>?
我也不太确定保留注释"这个词是什么意思.
RetentionPolicy.SOURCE
:期间丢弃编译.这些注释不编译后有意义完成,所以它们不会被写入字节码.
示例:@Override
、@SuppressWarnings
RetentionPolicy.CLASS
:期间丢弃类负载.做的时候有用字节码级别的后处理.让人有些意外的是,这是默认.
RetentionPolicy.RUNTIME
:不要丢弃.注释应该是可在运行时进行反射.示例:@Deprecated
来源:旧网址现已失效
Can anyone explain in a clear way the practical differences between the java.lang.annotation.RetentionPolicy
constants SOURCE
, CLASS
, and RUNTIME
?
I'm also not exactly sure what the phrase "retaining annotation" means.
RetentionPolicy.SOURCE
: Discard during the compile. These annotations don't make any sense after the compile has completed, so they aren't written to the bytecode.
Example:@Override
,@SuppressWarnings
RetentionPolicy.CLASS
: Discard during class load. Useful when doing bytecode-level post-processing. Somewhat surprisingly, this is the default.
RetentionPolicy.RUNTIME
: Do not discard. The annotation should be available for reflection at runtime. Example:@Deprecated
Source:
The old URL is dead now
hunter_meta and replaced with hunter-meta-2-098036. In case even this goes down, I am uploading the image of the page.
Image (Right Click and Select 'Open Image in New Tab/Window')
这篇关于不同的保留策略如何影响我的注释?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!