Java 如何在源代码中以编程方式定义myAnnotationProcessor?

Java 如何在源代码中以编程方式定义myAnnotationProcessor?,java,annotations,Java,Annotations,我只是不熟悉注释。 我已经创建了一个示例annotationProcessor来处理我的注释,目前正在使用命令行脚本“-processor defaultproject.annotations.DefaultProcessor”来使用它 有没有办法从代码内部设置这个处理器 非常感谢 Moein关于发现过程,他这样说: 该工具使用发现过程来查找注释处理器和 决定是否应该运行它们。通过配置该工具 可以控制一组潜在的处理器。例如,对于 要运行的候选处理器列表可以由用于 . 其他工具实现可能有 不同的配

我只是不熟悉注释。 我已经创建了一个示例annotationProcessor来处理我的注释,目前正在使用命令行脚本“-processor defaultproject.annotations.DefaultProcessor”来使用它

有没有办法从代码内部设置这个处理器

非常感谢 Moein

关于发现过程,他这样说:

该工具使用发现过程来查找注释处理器和 决定是否应该运行它们。通过配置该工具 可以控制一组潜在的处理器。例如,对于 要运行的候选处理器列表可以由用于 . 其他工具实现可能有 不同的配置机制,如命令行选项;对于 有关详细信息,请参阅特定工具的文档

在类路径中定义处理器的最佳方法是提供一个
META-INF/services/javax.annotation.processing.processor
文件,其中包含文本
defaultproject.annotations.DefaultProcessor


(假设您的工具链支持此机制。这最终取决于编译器/tool/IDE。)

很抱歉,我尝试过这样做:
ArrayList processors.add(new MyDefaultProcessor());JavaCompiler=ToolProvider.getSystemJavaCompiler();StandardJavaFileManager fileManager=compiler.getStandardFileManager(null,null,null);CompilationTask CompilationTask=compiler.getTask(null,fileManager,null,null,null,null);compilationTask.setProcessors(处理器);compilationTask.call()但我不知道如何替换当前传递的参数“null”。谢谢lot@user847577-请参见David Biesack关于动态编译的文章。如果调用API仍然有困难,这可能是一个新问题。