Mis*_*sha 5 java specifications java-8
(test ? list.replaceAll(String::trim) : list) :: iterator
这是没有意义replaceAll
的void
.我是否误解了某些内容,或者这是JLS中的错误(可能是replaceAll
返回结果列表的早期版本)?
嗯,从技术上讲,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;
}
Run Code Online (Sandbox Code Playgroud)
但总的来说,他们似乎打算基于java.util.List
. 因此,最好将其替换为基于 JDK 的东西。