gpt4 book ai didi

java - 提取给定方法句柄的 @Nullable/@NonNull 注释

转载 作者:行者123 更新时间:2023-12-02 11:30:44 27 4
gpt4 key购买 nike

我正在使用 CheckerFramework,想要提取方法的返回值和参数的有效 @Nullable/@NonNull 注释,例如some.package.Thing:对象计算(对象,集合)。到目前为止,我发现的唯一方法是生成在不同的空上下文中使用此方法的源代码,以便我可以从检查器结果推断注释。但我非常确定有一种方法可以扩展 NullnessChecker,这样我就可以给它一个类路径上方法的方法句柄(通过反射获得)并导出有效的 nullness 注释。有人可以给我一些关于从哪里开始的提示吗?

最佳答案

作为背景,Checker Framework允许您在类型上编写注释,例如 List<@NonNull String> ,但它也适用 defaulting and inference .

最终的类型注释被写入类文件中。因此,您可以使用读取类文件的工具。

  • javap -v MyFile.class将向您显示大量信息,包括类型注释。

  • Annotation File Utilities.java 读取注释并向其写入注释文件,.class文件和文本文件。这就是我会使用的,但我不确定你的用例。我会编译 .java文件,然后运行 ​​ extract-annotations mypackage.MyClass 创建文本文件 mypackage.MyClass.jaif 。人或工具可以读取该文件。

  • 如果注释具有运行时保留(大多数注释,例如 @Nullable ),您也可以通过反射获取它们。然而,这需要您加载正在分析的类。你可以看到一个tutorialanother Stack Overflow question .

关于java - 提取给定方法句柄的 @Nullable/@NonNull 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com