我正在做一些编码作业,我们正在使用Iterator接口迭代一个字符串列表,并让Function执行一个方法。我收到一个错误,即我的Iterator接口中的next()无法被覆盖,并且使用了无效的数据类型。我不确定为什么不能使用布尔类型?
public class SuchThat<T> implements Iterator<T> {
private final Function<T, Boolean> p;
private final Iterator<T> input;
public SuchThat(Function<T, Boolean> p, Iterator<T> input) {
this.p = p;
this.input = input;
}
@Override
public boolean hasNext() {
return input.hasNext();
}
@Override
public boolean next() {
if (!hasNext()) throw new IllegalStateException();
T result = input.next();
boolean answer = p.apply(result);
return answer;
}
}
这是我的错误: