Java Lambda表达式:id是什么意思 - >“”

时间:2018-04-18 09:40:09

标签: lambda java-8

在我继承的一段Java代码中,我遇到了以下似乎是Lambda表达式的内容:

id ->""

作为方法的参数出现:

runner.setIntanceName(id ->"")

我查阅了Lambda Expressions文档,但找不到这个特殊表达的含义。

id ->""是什么意思?

4 个答案:

答案 0 :(得分:2)

E.g。你有:

public static void setIntanceName(Function<String, String> function) {
    function.apply("aaa");
}

然后使用此方法:setIntanceName(id -> "")

setIntanceName(new Function<String, String>() {
    @Override
    public String apply(String id) {
        return "";
    }
});

即。你向方法添加一个函数(或者只用一种方法将它作为某个接口的实例处理 - 它被称为功能接口)。方法setIntanceName将使用此功能。在给定的示例中,此函数接受id=aaa并始终返回empty字符串作为函数的结果。

答案 1 :(得分:1)

左侧指定表达式所需的参数,如果不需要参数,也可以为空。

右侧是lambda主体,它指定lambda表达式的动作。

所以这里id ->"" id是空字符串。

详细了解here

答案 2 :(得分:1)

我认为那个写过那个意图忽略任何id-arguments并且只返回一个空字符串的人。

答案 3 :(得分:0)

->只是将参数与正文分开的标记。请参阅链接到https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

的文档中的 Lambda表达式语法部分

""是身体。在这种情况下,一个常量空字符串。