public @interface CustomAnnotation { String value() default ""; } public class CustomAnnotationProcessorFactory implements AnnotationProcessorFactory { @Override public Collection<String> supportedAnnotationTypes() { return Arrays.asList("CustomAnnotation"); } @Override public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> declaration, AnnotationProcessorEnvironment env) { return new CustomAnnotationProcessor(env); } } public class CustomAnnotationRunner { public static void main(String[] args) throws Exception { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); Iterable<String> options = Arrays.asList("-processor", "CustomAnnotation"); Iterable<? extends JavaFileObject> compilationUnits = compiler.getStandardFileManager(null, null, null) .getJavaFileObjectsFromStrings(Arrays.asList("path/to/YourClass.java")); JavaCompiler.CompilationTask task = compiler.getTask(null, null, null, options, null, compilationUnits); task.call(); } } <dependency> <groupId>com.googlecode.alchim</groupId> <artifactId>alchim</artifactId> <version>1.0</version> </dependency> @CustomAnnotation("Hello, World!") public class YourClass { // ... }


上一篇:
下一篇:
切换中文