如果result = false,我試圖返回False。我無法改變返回類型。如果result = false,linkList需要返回false。由於以非布爾方法返回布爾值
private static class FilteringFlatApplyFunction<T> implements FlatApplyFunction<T,T> {
private final Predicate pred;
LinkedList<T> linkList = new LinkedList<T>();
public FilteringFlatApplyFunction(Predicate<T> p) {
this.pred = p;
this.linkList = linkList;
}
@Override
public List<T> apply(T x){
boolean result = pred.check(x);
if (result = true) {
linkList.add(x);
return linkList;
}
if (result = false) {
linkList = false;
}
return linkList;
}
}
Re'if(result = true)'和'if(result = false)':'='是**賦值**,不是比較;比較是'==':http://stackoverflow.com/questions/39385382/why-doesnt-my-equality-comparison-using-a-single-equals-work-correctly-in-j(另外:不要使用'=='或'!='布爾值[部分出於這個原因],你已經有了一個布爾值,只要'if(result)'和'if(!result)'。 –