java - RetentionPolicy CLASS 与 RUNTIME

标签 java annotations

RetentionPolicy.CLASSRetentionPolicy.RUNTIME 的实际区别是什么?

看起来两者都记录在字节码中,并且无论如何都可以在运行时访问。

最佳答案

both may be accessed at the run-time anyway.

那不是 javadoc说:

RUNTIME:注解将由编译器记录在类文件中,并在运行时由 VM 保留,因此可以反射性地读取它们

CLASS:注释将由编译器记录在类文件中,但VM在运行时不需要保留

实际上,我不知道 CLASS 的任何用例。仅当您想以编程方式读取字节码时才有用,而不是通过类加载器 API,但这是一个非常特殊的情况,我不知道您为什么不只使用 RUNTIME .

具有讽刺意味的是,CLASS 是默认行为。

关于java - RetentionPolicy CLASS 与 RUNTIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971234/

相关文章:

java - 尝试在 Octave 中调用 Java 对象

java - 在 Evaluate-Expression 上运行语句与 Watches intellij 之间的区别?

java - Gradle Jar 依赖错误

java - 使用 TestNG 注释进行测试

java - MyBatis注解,从bean更新参数

java - 我应该使用@Transactional 对JdbcTemplate 进行简单查询吗?

java - 代表 Android 应用程序签名 key 、 keystore 实体以及该 key 中到底存储了什么?

java - 带注解的代码风格

ios - 我如何在 MKmapView 中拖动我的注释,就像 Google Pin Drop 和 Dragging :iOS

python - Matplotlib:使用垂直箭头和居中文本注释绘图