provided 'javax.annotation:jsr250-api:1.0'
但当我尝试构建以下类时,它表示找不到AbstractProcessor类:
class MyAnnotationProcessor extends AbstractProcessor{
}
如何让它识别这个类?
下面是确切的错误:
我的导入内容如下所示:
这是我的java版本:
$java -version
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
我遇到了同样的问题,我找到了解决办法。请参阅下面的链接:
https://stackoverflow.com/a/32933935/3899061
在android库模块中无法访问抽象处理器。为了让它工作,你可以创建一个单独的“java库”模块,并在你的主模块中添加它的依赖关系。以下是对我有效的解决方案的逐步描述:
>
以下是自定义批注处理器的快照:
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.TypeElement;
public class CustomAnnotationProcessor extends AbstractProcessor{
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
在主模块中添加新创建模块的依赖关系
编译并运行...!!
如果你喜欢我的答案,别忘了投赞成票:)
问题内容: 我正在尝试为局部变量创建注释。我知道我不能在生成的字节码中保留注释,但是我应该能够在编译时通过执行以下操作来访问信息: 仅,当我在以下指定的受支持类型中指定包含“垃圾”的ProcessorFactory时,apt或javac不会对此进行处理: 但是,当我之前移动@Junk批注时,它将起作用 有想法或解决方法? 问题答案: 做了一些快速测试并进行了一些搜索,看起来好像并没有真正被支持。
需要注释处理器的帮助。我创建了一个简单的注释处理器,它使用@autoservice注释来检查注释的字段是否为最终字段。但它没有显示任何编译时错误。这是我的配置 注释: 注释处理器: pom文件: 测试文件:
我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?
我使用抽象处理器创建了一个自定义注释和注释处理器。这意味着我想在编译之前进行注释处理。我将自定义注释和处理器导出为Jar,并尝试将其与简单的java测试程序一起使用。我确信在编译时它会找到我的java处理器类,但不知何故,我并没有得到我在控制台上期望的o/p。下面是我的处理器中处理方法的代码。 此外,我故意使用以便我得到一个版本警告,它确认当我执行一个测试类时,它找到了我的注释处理器。 这里是我的
无效: 有效: (运输是抽象的) 顺便说一句,我的所有jaxb类都在同一个包中,并且我的JaxbContext是针对这个包配置的。
我在编译使用我的注释处理器的代码时收到以下错误: 关于如何调试这个有什么提示吗?错误输出根本没有用处。有没有办法得到更详细的错误?