我正在尝试为局部变量创建注释.我知道我不能在生成的字节码中保留注释,但我应该能够在编译时通过执行以下操作来访问信息:
@Target({ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Junk {
String value();
}
Run Code Online (Sandbox Code Playgroud)
只有,当我在下面指定了支持类型中具有"垃圾"的ProcessorFactory时,这不会被apt或javac处理:
class JunkTester {
public static void main(String[] args) {
@Junk String tmp = "Hello World";
System.out.println(tmp);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我之前移动@Junk注释时它会起作用 public static
思考和/或解决方法?
做了一些快速测试并进行了一些搜索,它看起来像挂钩LOCAL_VARIABLE并不是真的支持......但是:
http://forums.sun.com/thread.jspa?threadID=775449
http://www.cs.rice.edu/~mgricken/research/laptjavac/
https://checkerframework.org/jsr308/
可能完全错了,但这就是它的样子......