当前位置: 首页 > 面试题库 >

RetentionPolicy CLASS与运行时间

吴驰
2023-03-14
问题内容

RetentionPolicy.CLASS和之间有什么实际区别RetentionPolicy.RUNTIME

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


问题答案:

两者都可以在运行时访问。

那不是javadoc所说的:

RUNTIME:注释由编译器记录在类文件中,并 在运行时由VM保留,因此可以通过反射方式读取它们

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

在实践中,我不知道的任何用例CLASS。仅当您想以编程方式读取字节码(而不是通过classloader
API)时才有用,但这是一个非常特殊的情况,我不知道为什么不只使用RUNTIME

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



 类似资料:
  • 我希望在使用运行测试时,控制台尽可能安静,除非出现问题。再说一次,当我在Eclipse中编写测试时(换句话说,当我在Eclipse中运行单个junit测试时),它们可以非常详细。 因此,当我使用surefire运行所有测试时,我需要一种方法来拥有不同的log4j/logback设置,而不是在Eclipse中一个接一个地运行它们。有没有办法做到这一点?

  • nodejs ASPnet5 unity office

  • 1. YodaOS Universal 如何配置系统和应用 1.1. 目录 1.1.1. 一.YODAOS完整体验 1.1.2. 定制系统和应用 1.1. 目录 YODAOS 完整体验 如何定制化系统和应用 1.1.1. 一.YODAOS完整体验 下载代码 Yodaos使用git作为源代码管理工具,用Repo 命令行工具管理多个git代码仓库,下载代码时需要用户注册成为Rokid 平台开发者。 注

  • 问题内容: 我正在尝试围绕我的烧瓶应用程序为办公室中的菜鸟创建一个简单的tkinter GUI窗口。我希望脚本按以下顺序执行这些任务: 启动Flask Web服务器 用一个按钮打开一个tkinter GUI窗口。当按下时,该按钮将打开应用程序的索引页面(例如http://127.0.0.1:5000) 关闭tkinter gui窗口时终止flask Web服务器 到目前为止,这是我所拥有的,但是该

  • 我开始学习如何使用TensorFlow进行机器学习。发现docker在我的机器上部署TensorFlow非常方便。然而,我能找到的例子对我的目标设定不起作用。那是 在ubuntu16.04操作系统下,使用nvidia-docker同时托管jupyter和拉伸板服务(可以是两个容器或一个容器有两个服务)。从jupyter创建的文件应该对主机操作系统可见。 Ubuntu 16.04 多克尔 nvidi

  • 0.1 本系列教程说明 本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作。由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好。教程同时提供图文和视频教程两种方式,供不同喜