Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注释处理器和匿名类_Java_Metaprogramming_Annotation Processing - Fatal编程技术网

Java 注释处理器和匿名类

Java 注释处理器和匿名类,java,metaprogramming,annotation-processing,Java,Metaprogramming,Annotation Processing,我正在尝试为一些匿名类插入指令。为此,我创建了一个注释: @Target(ElementType.TYPE_USE) @Retention(RetentionPolicy.SOURCE) public @interface Ann { } 注释处理器: @SupportedAnnotationTypes("Ann") @SupportedSourceVersion(SourceVersion.RELEASE_11) public class AP extends Abstr

我正在尝试为一些匿名类插入指令。为此,我创建了一个注释:

@Target(ElementType.TYPE_USE)
@Retention(RetentionPolicy.SOURCE)
public @interface Ann {
}
注释处理器:

@SupportedAnnotationTypes("Ann")
@SupportedSourceVersion(SourceVersion.RELEASE_11)
public class AP extends AbstractProcessor {
    @Override
    public boolean process(Set<? extends TypeElement> anns, RoundEnvironment env) {
        System.out.println("INVOKED");
        return true;
    }
}
javac src/test/java/T.java -cp build/classes/java/main/ -processor AP -d out
然后我尝试使用注释处理器编译此类:

@SupportedAnnotationTypes("Ann")
@SupportedSourceVersion(SourceVersion.RELEASE_11)
public class AP extends AbstractProcessor {
    @Override
    public boolean process(Set<? extends TypeElement> anns, RoundEnvironment env) {
        System.out.println("INVOKED");
        return true;
    }
}
javac src/test/java/T.java -cp build/classes/java/main/ -processor AP -d out
但它没有打印任何东西。但是,如果我将注释
@Ann
从匿名类移动到
T
类(
@Ann公共类T{
),它将按预期工作

如何使用注释处理插入匿名类