相关疑难解决方法(0)

为什么 negate() 需要对 Predicate 进行显式转换?

我有一个名字列表。在第 3 行,我必须将 lambda 表达式的结果转换为Predicate<String>. 我正在阅读的书解释说,为了帮助编译器确定匹配的功能接口是什么,强制转换是必要的。

但是,我不需要在下一行进行这样的演员表,因为我不调用negate(). 这有何不同?我知道negate()这里返回了Predicate<String>,但是前面的 lambda 表达式不一样吗?

List<String> names = new ArrayList<>();
//add various names here
names.removeIf(((Predicate<String>) str -> str.length() <= 5).negate()); //cast required
names.removeIf(((str -> str.length() <= 5))); //compiles without cast
Run Code Online (Sandbox Code Playgroud)

java lambda predicate

7
推荐指数
1
解决办法
246
查看次数

如何在lambda演算术语中定义匿名函数(或者我怎么能说某些语言支持匿名函数)?

java支持当前版本的6个lambda表达式或"匿名函数"吗?有没有我在java中无法用支持lambda表达式的编程语言做的事情?我知道java是完整的,所以你可以在其中做"任何事情".

为什么匿名内部类包装函数不能表示lambda演算中定义的函数?

实际上什么是匿名函数以及如何说某些语言支持匿名函数?

lambda computer-science programming-languages

5
推荐指数
1
解决办法
728
查看次数