Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java编译器如何在谓词';s方法只能返回布尔值?_Java_Lambda - Fatal编程技术网

java编译器如何在谓词';s方法只能返回布尔值?

java编译器如何在谓词';s方法只能返回布尔值?,java,lambda,Java,Lambda,我不明白的是,我们知道java甚至使用Lambda都不支持动态类型,而且它在编译时被编译为Predictor 我不明白的是,谓词的默认方法只能返回布尔值,而Lambda表达式可以返回任何值。这是如何存档的?而Lambda表达式可以返回任何内容。这是错误的 将lambda表达式写入函数接口中相应的抽象方法 以谓词为例,将lambda表达式写入相应的抽象方法布尔测试(T) 来自java文档并提供了一个清晰的示例 函数接口是只包含一个抽象方法的任何接口。(函数接口可能包含一个或多个默认方法或静态方法。

我不明白的是,我们知道java甚至使用Lambda都不支持动态类型,而且它在编译时被编译为Predictor


我不明白的是,谓词的默认方法只能返回布尔值,而Lambda表达式可以返回任何值。这是如何存档的?

而Lambda表达式可以返回任何内容。
这是错误的

将lambda表达式写入函数接口中相应的抽象方法

谓词
为例,将lambda表达式写入相应的抽象方法
布尔测试(T)

来自java文档并提供了一个清晰的示例

函数接口是只包含一个抽象方法的任何接口。(函数接口可能包含一个或多个默认方法或静态方法。)因为函数接口只包含一个抽象方法,所以在实现该方法时可以省略该方法的名称。为此,您可以使用lambda表达式,而不是使用匿名类表达式,该表达式在以下方法调用中突出显示:

参考:方法5:使用Lambda表达式指定搜索条件代码


参考:方法6:对Lambda表达式使用标准函数接口

什么是
谓词
?编译lambda是为了实现一个功能接口。“这个问题看起来像其他问题,但不同”。每当你在一个问题中说这样的话,你都应该解释你已经发现了什么,以及它与你所问的有什么不同。他的意思可能是
java.util.function.Predicate
。无论如何,我认为这个问题对于stackoverflow来说有点过于宽泛,因为答案是解释lambdas在java中是如何工作的。我的意思是“java.util.function.Predicate”