当前位置: 首页 > 面试题库 >

如何创建处理局部变量的注释处理器?

李凯定
2023-03-14
问题内容

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

@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);
    }
}

但是,当我之前移动@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/

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



 类似资料:
  • 问题内容: 在阅读 Java 中的自定义注释处理器的代码时,我注意到处理器方法中的这段代码: 碰巧我也在使用自定义注释处理器,所以我想在我的注释处理器中使用上面的代码段。 我以这种方式尝试了上面的代码: & 这条路: 但我没有注意到处理器行为的任何变化。我得到了支票,但看不到有什么用。 我想知道在处理特定回合时有用的用例。 问题答案: 这两项检查都很重要,但是直到在同一项目中一次运行多个注释处理器

  • 主要内容:使用Rem语句注释,注释使用::声明为创建的脚本添加注释或文档总是一个好习惯。 这是一个维护脚本用来理解脚本实际所做的事情所必需的注释。 例如,考虑下面这段没有注释形式的代码。 如果一个没有任何注释的脚本,普通人试图理解脚本,那么需要很多时间来理解脚本做些什么工作。 使用Rem语句注释 有两种方法可以在批处理脚本中创建注释; 一个是通过命令。 语句后的任何文本都将被视为注释,不会被执行。 以下是此声明的一般语法。 语法 其中是需要添

  • 在阅读Java中的自定义注释处理器的代码时,我注意到处理器的方法中的这段代码: 碰巧我也在处理一个自定义注释处理器&我想在我的注释处理器中使用上面的代码片段。 但是我没有注意到处理器的行为有任何变化。我得到了检查,但我看不出有什么用。 我想知道在处理某个回合时使用有用的用例。

  • 但当我尝试构建以下类时,它表示找不到AbstractProcessor类: 如何让它识别这个类? 下面是确切的错误: 我的导入内容如下所示: 这是我的java版本:

  • 我创建了一个名为EasyPrefs的注释处理器,当我尝试在我的项目中使用它时,它会显示以下警告。 请求增量注释处理,但禁用支持,因为以下处理器不是增量的:net.androidcart.easyprefs.EasyPrefsProcessor(NON_INCREMENTAL)。 我做了一些研究,没有找到任何关于如何使它增量的教程。是否需要任何梯度配置,或者某些功能需要被覆盖,等等。

  • 需要注释处理器的帮助。我创建了一个简单的注释处理器,它使用@autoservice注释来检查注释的字段是否为最终字段。但它没有显示任何编译时错误。这是我的配置 注释: 注释处理器: pom文件: 测试文件: