在我继承的一段Java代码中,我遇到了以下似乎是Lambda表达式的内容:
id ->""
作为方法的参数出现:
runner.setIntanceName(id ->"")
我查阅了Lambda Expressions文档,但找不到这个特殊表达的含义。
id ->""
是什么意思?
答案 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)
答案 2 :(得分:1)
我认为那个写过那个意图忽略任何id-arguments并且只返回一个空字符串的人。
答案 3 :(得分:0)
->
只是将参数与正文分开的标记。请参阅链接到https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
""
是身体。在这种情况下,一个常量空字符串。