1
我已经介绍了检查框架v2.1.6到java8项目,并修复了所有NULL的含量的错误,但我坚持以下错误Java的收集方法与检查框架不兼容
Main.java:52: error: [assignment.type.incompatible] incompatible types in assignment.
List<String> collectedStrings = strings.stream().collect(Collectors.toList());
^
found : @Initialized @NonNull List<@Initialized @Nullable Object>
required: @UnknownInitialization @Nullable List<@Initialized @NonNull String>
以下(简化)示例代码通过使结果@Nullable引发错误
List<String> strings = new ArrayList<>();
strings.add("test");
List<String> collectedStrings = strings.stream().collect(Collectors.toList());
collectedStrings.forEach(System.out::println);
现在,我可以解决此
List<@Nullable String> collectedStrings = strings.stream().collect(Collectors.toList());
但是,这只能将错误级联到下一次调用,现在认为collectStrings是可疑的
有没有人有一个很好的解决这个问题?
我想你需要提供明确的类型参数给Collectors.toList()调用。似乎类型推断再次失败。但我不确定,因为我不熟悉Checker。 – glee8e