类型参数中的检查器框架不兼容类型
checker-framework incompatible types in type argument
我有一些这样的代码,我将映射存储到 java threadlocal,
import java.util.*;
class Foo {
private final ThreadLocal<Map<String, String>> barMap = ThreadLocal.withInitial(HashMap::new);
}
从 checkerframework 启用无效性检查时,我得到
Error: [type.argument.type.incompatible] incompatible types in type argument.
found : @Initialized @NonNull Map<@Initialized @NonNull String, @Initialized @NonNull String>
required: [extends @Initialized @Nullable Object super null]
我不知道如何解决这个问题。
这是 Checker Framework 中的 known bug。您应该取消警告。
Checker Framework 目前使用 Java 7 类型推理算法。 Java 8 对类型推断进行了重大更改,这需要在 Checker Framework 中重新实现。 (Checker 框架本身本质上是一个编译器。)重新实现已部分完成,但尚未完成。
我有一些这样的代码,我将映射存储到 java threadlocal,
import java.util.*;
class Foo {
private final ThreadLocal<Map<String, String>> barMap = ThreadLocal.withInitial(HashMap::new);
}
从 checkerframework 启用无效性检查时,我得到
Error: [type.argument.type.incompatible] incompatible types in type argument.
found : @Initialized @NonNull Map<@Initialized @NonNull String, @Initialized @NonNull String>
required: [extends @Initialized @Nullable Object super null]
我不知道如何解决这个问题。
这是 Checker Framework 中的 known bug。您应该取消警告。
Checker Framework 目前使用 Java 7 类型推理算法。 Java 8 对类型推断进行了重大更改,这需要在 Checker Framework 中重新实现。 (Checker 框架本身本质上是一个编译器。)重新实现已部分完成,但尚未完成。