如果result = false,我试图返回False。我不能改变返回类型。如果result = false,linkList需要返回false。谢谢
selectedIndexProperty
答案 0 :(得分:6)
很简单,你不能。方法签名非常清楚地表明它将返回List<T>
,并且List<T>
是您将返回的内容。
您可以返回null
。
答案 1 :(得分:0)
您无法将boolean
返回List
,您可以做的是返回null
。
当您检查条件时,您可以做的是,创建另一种封装apply
方法的方法,如果list
为null
则返回,则返回false。如下所示:
if(linkList == null)
return false;
else
return true;
此外,使用==
进行比较。
如下:
@Override
public List<T> apply(T x){
boolean result = pred.check(x);
if(result == true) {
linkList.add(x);
return linkList;
}
if(result == false){
return null;
}
return linkList;
}
如果是布尔值,则无需使用==
,如下所示
@Override
public List<T> apply(T x){
boolean result = pred.check(x);
if(result){
linkList.add(x);
return linkList;
}
if(result){
linkList = false;
}
return linkList;
}
答案 2 :(得分:0)
如果方法专门返回List,则不能返回false。你可以做的是返回'null':
@Override
public List<T> apply(T x){
boolean result = pred.check(x);
if (result == true) {
linkList.add(x);
return linkList;
}
if (result == false) {
linkList = null;
}
return linkList;
}
然后在调用方法中执行以下操作:
List<T> list = apply(x);
boolean result;
if (list == null){
result = false;
}
答案 3 :(得分:0)
抱歉发芽。你不能返回不同的类型。返回NULL或者返回一个对象是你最好的机会。
答案 4 :(得分:0)
如果结果为假,则返回null,所以我认为如果结果为假,则不需要进行测试!
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) {
linkList.add(x);
}
return linkList;
}
}