问题标签 [annotation-processing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
825 浏览

java - Java注释处理:可以访问非注释类的“元素”吗?

Java 注释处理(从 Java 6 开始)是一个非常好的概念,因为它允许通过Element接口(和其他接口)访问有关类和方法的大量信息。

但遗憾的是,我不得不凭经验发现,未注释的类永远不会传递给自定义注释处理器:

我的发现是真的吗?或者我可以“欺骗”编译器来提供关于非注释类的自定义注释处理器信息吗?

0 投票
2 回答
2708 浏览

java - Java注解处理:如何知道一轮是否是最后一轮?

扩展时AbstractProcessor,有可能覆盖init(...),但没有“相反”的方法,将在处理完所有轮次后调用。

这是一个问题:当您必须将每轮收集的信息附加到同一个文件时,您永远无法关闭文件,因为您永远无法知道一轮是什么时候。因此,该文件永远不会关闭并保持为空。

使用关闭钩子也不起作用,永远不会调用该钩子。

有任何想法吗?

0 投票
2 回答
213 浏览

java - com.sun.mirror.* 包在 OSX 上去了哪里?

我目前正在尝试编写一个 apt 注释处理器。但是,我无法在我的系统上找到所需的 tools.jar。我在 OSX 上,安装了默认的 JDK。我在哪里可以找到与 apt 相关的课程?

0 投票
2 回答
2415 浏览

java - Java:反射(在运行时)与镜像(在注释处理时)

我了解以下概念之间的一般差异

  • 反射(在运行时使用完成Class, Method, Field, Annotation, ...),以及
  • 镜像(在注释处理期间使用完成TypeMirror, TypeElement, ...)。

但是有人可以深入比较这两个概念(或指向一个资源,它在哪里完成)?

例如,哪个概念提供了另一个不提供的信息......

谢谢你。

0 投票
2 回答
5086 浏览

java - javax.lang.model:如何获取字段的类型?

java.lang.reflect中,一个人会这样做:

但是我该怎么处理javax.lang.model's VariableElement(它可能代表也可能不代表一个字段)?相应的返回值将是 (我猜) TypeElement

那么,在 中javax.lang.model,我如何获取由TypeElement表示的字段的类型(或 )VariableElement

顺便说一句,没有一个 Stackoverflow-tag 适合 javax.lang.model ;)

0 投票
1 回答
980 浏览

java - java 1.6注解处理时获取实际类型而不是类型参数

鉴于这两个类

如果我在注释处理器中运行此代码,我不会得到我想要的结果。

env 是一个处理环境。entityElement 是一个元素。(我的课)

fieldType 设置为Key<Foo_>

我需要调用什么才能将 fieldType 设置为Key<MyClass>

0 投票
1 回答
6808 浏览

java - 为 maven-processor-plugin 编写注释处理器

我有兴趣为 maven-processor-plugin 编写注释处理器。我对 Maven 比较陌生。

处理器 Java 源代码应该在项目路径中的哪个位置(例如:src/main/java/...)以便正确编译,但最终不会成为我的工件 JAR 文件的一部分?

0 投票
1 回答
630 浏览

java - AspectJ weaving:如何在没有对方面的静态引用的情况下进行完整的代码编织?

几周前,我正在寻找一种方法来为 java 类的文件创建一些字符串常量->使用 maven 为类属性生成常量?

我让它工作了。我创建了一个包含常量的方面并将它们编织到类文件中。现在的问题是,我的客户在尝试使用编织类时会收到 NoClassDefFound 异常。有两个原因:

  1. 我在构建过程中从客户端 jar 中删除了方面 .class 文件

  2. 他们的类路径中没有 aspectj 库

使用反编译器,我发现该类有一个像这样的静态块:

我的问题: 编织过程中是否有一个选项,可以在我的类文件中创建真正的“公共静态最终字符串”-Field,以便我可以完全摆脱客户端 jar 中的方面?

提前致谢

马丁

0 投票
5 回答
7477 浏览

java - 从 Java 注释处理器访问源代码

我正在尝试从 Java 注释处理器中访问一种类型的实际原始源代码。这有可能吗?谢谢!

0 投票
1 回答
1420 浏览

java - 使用 Java 注释处理器添加注释

我知道注释处理器通常用于使用注释并对它们做出反应。但是,我有一个用例,其中这种“反应”涉及添加其他注释。这可以在处理器本身内完成吗?如果是这样,怎么做?