问题标签 [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.
java - Java注释处理:可以访问非注释类的“元素”吗?
Java 注释处理(从 Java 6 开始)是一个非常好的概念,因为它允许通过Element
接口(和其他接口)访问有关类和方法的大量信息。
但遗憾的是,我不得不凭经验发现,未注释的类永远不会传递给自定义注释处理器:
我的发现是真的吗?或者我可以“欺骗”编译器来提供关于非注释类的自定义注释处理器信息吗?
java - Java注解处理:如何知道一轮是否是最后一轮?
扩展时AbstractProcessor
,有可能覆盖init(...)
,但没有“相反”的方法,将在处理完所有轮次后调用。
这是一个问题:当您必须将每轮收集的信息附加到同一个文件时,您永远无法关闭文件,因为您永远无法知道上一轮是什么时候。因此,该文件永远不会关闭并保持为空。
使用关闭钩子也不起作用,永远不会调用该钩子。
有任何想法吗?
java - com.sun.mirror.* 包在 OSX 上去了哪里?
我目前正在尝试编写一个 apt 注释处理器。但是,我无法在我的系统上找到所需的 tools.jar。我在 OSX 上,安装了默认的 JDK。我在哪里可以找到与 apt 相关的课程?
java - Java:反射(在运行时)与镜像(在注释处理时)
我了解以下概念之间的一般差异
- 反射(在运行时使用完成
Class, Method, Field, Annotation, ...
),以及 - 镜像(在注释处理期间使用完成
TypeMirror, TypeElement, ...
)。
但是有人可以深入比较这两个概念(或指向一个资源,它在哪里完成)?
例如,哪个概念提供了另一个不提供的信息......
谢谢你。
java - javax.lang.model:如何获取字段的类型?
在java.lang.reflect
中,一个人会这样做:
但是我该怎么处理javax.lang.model
's VariableElement
(它可能代表也可能不代表一个字段)?相应的返回值将是 (我猜) TypeElement
。
那么,在 中javax.lang.model
,我如何获取由TypeElement
表示的字段的类型(或 )VariableElement
?
顺便说一句,没有一个 Stackoverflow-tag 适合 javax.lang.model ;)
java - java 1.6注解处理时获取实际类型而不是类型参数
鉴于这两个类
如果我在注释处理器中运行此代码,我不会得到我想要的结果。
env 是一个处理环境。entityElement 是一个元素。(我的课)
fieldType 设置为Key<Foo_>
。
我需要调用什么才能将 fieldType 设置为Key<MyClass>
?
java - 为 maven-processor-plugin 编写注释处理器
我有兴趣为 maven-processor-plugin 编写注释处理器。我对 Maven 比较陌生。
处理器 Java 源代码应该在项目路径中的哪个位置(例如:src/main/java/...)以便正确编译,但最终不会成为我的工件 JAR 文件的一部分?
java - AspectJ weaving:如何在没有对方面的静态引用的情况下进行完整的代码编织?
几周前,我正在寻找一种方法来为 java 类的文件创建一些字符串常量->使用 maven 为类属性生成常量?
我让它工作了。我创建了一个包含常量的方面并将它们编织到类文件中。现在的问题是,我的客户在尝试使用编织类时会收到 NoClassDefFound 异常。有两个原因:
我在构建过程中从客户端 jar 中删除了方面 .class 文件
他们的类路径中没有 aspectj 库
使用反编译器,我发现该类有一个像这样的静态块:
我的问题: 编织过程中是否有一个选项,可以在我的类文件中创建真正的“公共静态最终字符串”-Field,以便我可以完全摆脱客户端 jar 中的方面?
提前致谢
马丁
java - 从 Java 注释处理器访问源代码
我正在尝试从 Java 注释处理器中访问一种类型的实际原始源代码。这有可能吗?谢谢!
java - 使用 Java 注释处理器添加注释
我知道注释处理器通常用于使用注释并对它们做出反应。但是,我有一个用例,其中这种“反应”涉及添加其他注释。这可以在处理器本身内完成吗?如果是这样,怎么做?