问题标签 [checker-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - Jenkins 中的 Checker Framework 报告?
如何配置以便在 Jenkins 中提取和报告 Checker Framework 发出的警告(例如,通过使用Analysis Collector Plugin)?
作为记录,我使用 maven 和checkersplugin并将<failOnError>
配置设置为false
,并且 Checker Framework 警告显示在 Jenkins 的控制台输出中。
java - 在 Eclipse Maven 项目中使用 Checker 框架
我想通过他们的Eclipse Plugin使用 Checker Framework 。如果我有一个没有依赖项的项目,这似乎可以正常工作。
但是,当我尝试对我的 Maven 项目进行检查时,我收到了数百条警告,说:
cannot find symbol
在控制台中,我得到以下报告:
"MainActivity.java:33: error: package de.my.dependency does not exist
import de.my.dependency;"
我假设 Eclipse Checker 插件无法解决 Maven 依赖项,我能做些什么来解决这个问题吗?
感谢帮助 :)
java - 如何抑制“未知枚举常量”警告?
java.lang.annotation.ElementType.TYPE_USE
JDK8 中添加的 Checkers 框架参考。当我在 JDK7 下使用它时,我收到以下警告:
unknown enum constant java.lang.annotation.ElementType.TYPE_USE
这是一个合理的警告,但是对于我认为无害的情况,我该如何压制它?
java - @EnsuresNonNullIf 注释给出“条件后置条件不满足”-警告
我正在使用检查器框架和类型注释来检查@Nullable
和@NonNull
. 在类似 Map 的类1中,Java 规范声明get(…)
-methodsnull
在映射不包含该键的条目时返回。因此,这些方法具有 -@Nullable
注释。但是,contains(…)
退货时true
,我想保证get(…)
不会退货null
。
如何指定条件 NonNull?
据我所知,您可以通过使用 注释contains(…)
-methods来实现这一点@EnsuresNonNullIf
,如下所示:
但是,这会导致警告:
我应该如何解决这个“不满足后置条件”的警告?
我的环境:
- Maven:3.0.4
- Java:1.7.0_25(甲骨文)
- Checker 框架 1.7.0(通过 maven 插件)
这个 Gist演示了这个问题。
1)它扩展了地图的功能,以检索具有“相似”键的条目。
java - Java 范围构造不能使用类型使用进行注释
我想用@Nullable
-annotation(来自Java Checker Framework)注释一个完全限定的类名,例如:
但是,这会导致错误:
如何注释完全限定的类名?
java - 创建对象时如何处理注释并设置默认值
我想编写代码,如下所示。
假设 MyClass 方法如下所示
因此,当有人使用注释创建 MyClass 对象时,它应该将默认值设置为某个 x(比如 20)。
在检查器框架中,它允许我们在代码中进行如下注释。
有谁知道我们如何在编译时将其分成两部分,如下所示?
或者如果我们能够像下面这样传递默认值也可以。
这可以使用注释处理器来实现吗/需要使用像 ASM 这样的字节码处理器来完成它吗?以更有意义的方式更新。
java - 使用 Java Checker Framework 的 Nullness Checker 注释可重入性
我正在使用 Java 8 试用Checker Framework的 Nullness 检查器。当我在以下代码上运行检查器时:
x.f();
检查器对可能的空引用 x的取消引用发出警告。当然,这是有道理的。Checker Framework 不知道做什么map.put
。map 对象可能已经引用了this
,然后调用setX(null)
它。
现在我的问题如下。有什么方法可以告诉 Checker Framework 一个方法不会修改除了它被调用的对象之外的任何对象?因为map.put
不调用setX
方法,所以 的值x
不会改变。
为了摆脱警告,我可以将调用方法更改为:
现在没有任何警告。这也是有道理的:不能从外部访问局部变量。但我不喜欢仅仅为了消除警告而引入这个局部变量。
或者,我可以x
通过@MonotonicNonNull
. 但在我的实际用例中,我想保留将字段设置为空的可能性。
提前致谢!
checker-framework - 在我运行它的 eclipse 插件之前是否有必要安装检查器框架?
当我在 Eclipse 中打开其首选项对话框时,我的控制台会打印一些错误。
有什么建议吗?
非常感谢。
eclipse - Eclipse 自定义 @NonNull 注释被忽略
我想使用 Eclipse 的“null 分析”功能,但我宁愿使用 javax.annotation.Nonnull 注释而不是 org.eclipse.jdt.annotation.NonNull 注释。我似乎无法让 Eclipse 识别我配置的任何自定义注释。
我正在使用 Eclipse Luna 4.4.2。
我创建了一个仅包含以下类的新测试项目:
我的编译器设置配置为使用 javax 注释:
我的项目包含 checker-1.8.10 JAR 以提供注释。
使用这些设置,Eclipse 报告 0 个错误。
如果我选中“对空规范使用默认注释”并将我的测试类更改为使用 Eclipse 的注释,我会得到:
任何人都知道我做错了什么或者这可能是一个 Eclipse 错误吗?我还尝试了来自谷歌的 jsr305 JAR 而不是检查器,以防万一这是一个问题,但这没有帮助。