Я ввел Checker Framework v2.1.6 для проекта java8 и исправлены все ошибки nullness, но я застрял на следующую ошибкеJava собирать метод несовместимого с каркасом Checker
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>
Следующая (упрощенный) пример коды бросает ошибку
List<String> strings = new ArrayList<>();
strings.add("test");
List<String> collectedStrings = strings.stream().collect(Collectors.toList());
collectedStrings.forEach(System.out::println);
Теперь я могу обойти эту проблему, сделав результат @Nullable
List<@Nullable String> collectedStrings = strings.stream().collect(Collectors.toList());
Но это только каскадирует ошибку на следующий звонок, который теперь считает, что собранныеStrings подозрительно
У кого-нибудь есть хорошая работа для этого?
Я думаю, вам нужно предоставить явный тип параметра вызову Collectors.toList(). Кажется, что вывод типа снова терпит неудачу. Я не уверен, однако, поскольку я не знаком с Checker. – glee8e