我有一个给定的函数调用,Java给出了一个错误,因为对象与int不可比较(当然...)。有人能解释一下我需要改变什么吗?
我尝试以不同的方式括起lambda表达式,但没有任何有用的结果。我认为lambda表达式是正确的,过滤函数略有问题,但我无法找出我的错误...
// function call
filter(v -> v > 5)
// function
public Optional<T> filter(Predicate<T> tester) {
if(isPresent() && tester.test(get())) {
return this;
} else {
return Optional.empty();
}
}
我原以为会得到一个 Optional.empty-Object,但由于 Object v 不可与 int 进行比较,而导致了 java 错误。具体来说,是因为 v > 5
。
filter
,并且您试图推断出什么结果? - Namanthis
,这意味着你的类应该扩展Optional
,但它是final
的。你有自己的Optional
吗? - Andrew Tobilko