当前位置: 首页 > 知识库问答 >
问题:

Java运行时保留注释-在编译时需要注释类,但在运行时不需要?

马胜泫
2023-03-14

我试图弄清楚使用运行时级别保留注释(例如:@javax.inject.named)注释的类在编译时和运行时类路径方面的确切影响。这是我到目前为止的理解:

    null

如果是这种情况,我是否需要创建一个包装对象(用@javax.inject.named注释)来委托内部的、未注释的对象?是否还有一个在编译时禁用注释处理的选项?参见http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#Processing

共有1个答案

龚凌
2023-03-14

您需要注释出现在compile类路径中,才能使用注释编译源文件。您不需要在类路径中使用它来使用已编译的类B使用注释来编译类a。

许多开源库(例如Guava或DbSetup)使用javax.annotation或Findbugs注释,但您不需要在类路径中有这些注释来编译(并运行)您自己的源代码,依赖于这些库。

 类似资料:
  • 如果用注释对类进行注释,那么为了使用该类,该注释的定义必须在运行时类路径中吗?例如,给定注释 我能执行这个程序吗 类路径中没有component.class?(在我的测试中,我可以,但这个行为是由规范定义的吗?) 我这样问是因为有相互矛盾的说法,即使用库中的注释是否会创建对该库的依赖关系。

  • 问题内容: 假设我有一个豆子: 然后使用这种测试代码将其转换为JSON或XML: 输出将是这样的: 现在,假设我想用一些动态名称替换“ data”属性: 如果我调用函数 convert(“ toto”), 我将获得以下输出: 如果我调用函数 convert(“ groovy”), 我会得到以下输出: 当然,我可以在JSON创建后执行String替换,但是如果您对程序化方法有一个满意的答案,我会接受

  • 我正在尝试使用静态编程语言反射从类及其成员生成JFrames。我创建了几个注释,其中一些在运行时存在,一些不存在。 组件注释: 启用注释: 我是这样使用这两个注释的: 如果我运行下面的代码: 我得到的唯一输出是这样的:< code>btn: [Component] 由于Retention设置为

  • 我使用的是Spring数据Solr,我有以下Solr文档模型类,并有一个对应的SolrCrudRepository用于该类 我正在尝试在运行时修改注释“@SolrDocument(collection=“oldCollectionName”)”。 我有一个服务,它使用以下方法来查找使用存储库和模型类的所有文档 更改注释的代码如下所示 使用此方法,我正确地将newDocumentName设置到注释映

  • 我正在尝试在运行时向类动态添加注释,如以下问题所示:在运行时修改类定义的注释字符串参数 但是,“annotations”字段将返回null。事实上,根据调试器,除了“declaredFields”和“name”之外,类上的所有内容都返回null。我正在使用Java 7。 这是我的代码:

  • 问题内容: 而且我正在尝试更改方法注释,但是java.lang.reflect.Method不包含任何地图字段(例如“ annotations”)或方法(例如“ getDeclaredAnnotationMap”) 只有但是我可以用这个字节数组做什么? 那么,如何修改方法的注释呢? 编辑: 我创建了:http : //pastebin.com/T2rewcwU 但是,仅编辑此方法实例,如果取消注释