java - 如何创建处理局部变量的注解处理器?

标签 java annotations

我正在尝试为局部变量创建注释。我知道我无法在生成的字节码中保留注释,但我应该能够通过执行以下操作在编译时访问信息:

@Target({ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Junk {
  String value();
}

只是,当我在以下支持的类型中指定具有“垃圾”的 ProcessorFactory 时,apt 或 javac 不会处理它:

class JunkTester {
    public static void main(String[] args) {
        @Junk String tmp = "Hello World";
        System.out.println(tmp);
    }
}

然而,当我在 public static 之前移动 @Junk 注释时它会起作用

想法和/或解决方法?

最佳答案

做了一些快速测试并进行了一些搜索,看起来像 Hook 到 LOCAL_VARIABLE 并没有得到真正的支持......但是:

http://forums.sun.com/thread.jspa?threadID=775449
http://www.cs.rice.edu/~mgricken/research/laptjavac/
https://checkerframework.org/jsr308/

可能完全错了,但这就是它的样子......

关于java - 如何创建处理局部变量的注解处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285652/

相关文章:

php - Symfony 5 : @IsGranted on method annotation doesn't work on inherited role

java - 如何获取 JavaFX 8 中节点的场景坐标? localToScene 似乎不起作用

java - 是否可以在java代码中为文本字段设置背景文本?

annotations - Kotlin 注释处理 : is it possible to generate an extension method?

java - 仅允许对特定方法进行注释

java - 带有 @RequestMapping 注释的 ReSTLet 不起作用

java - 从命令行运行java项目

java - 如何实现java awt/swing应用程序

java - Spring Security - Thymeleaf - 我可以在秒内评估 SPEL 表达式 :authorize tags?

node.js - 获取导入模块的文件路径