Ну, технически это не указано в JLS, что переменная list
имеет тип java.util.List
. Так что этот код может быть скомпилирован с некоторым пользовательским типом:
public static class MyList implements Iterable<String> {
private final List<String> list = new ArrayList<>();
public MyList add(String val) {
list.add(val);
return this;
}
public MyList replaceAll(UnaryOperator<String> op) {
list.replaceAll(op);
return this;
}
public Iterator<String> iterator() {
return list.iterator();
}
}
public Supplier<Iterator<String>> it(MyList list, boolean test) {
return (test ? list.replaceAll(String::trim) : list) :: iterator;
}
Но в целом это выглядит как они предназначены, чтобы сделать пример, основанный на java.util.List
. Таким образом, вероятно, было бы лучше заменить его чем-то JDK-based.
Да, это полностью похоже на ошибку. –