我正在尝试在我的代码中使用lambda表达式但是我收到了错误。
public static method getInstance(List<String> a, List<String> b, String c){
result = (a, b, c) -> createConnection(a, b, c);
}
我收到一个错误,比如a,b,c已经被使用了,其他错误就是它期望java util list但是得到了lambda参数。
答案 0 :(得分:1)
代码片段报告错误是合理的,因为它只是JLS中lambda表达式的一部分,你在方法和lambda表达式中都有重复的参数名称。
如果接收器参数(§8.4.1)出现在lambda表达式的 FormalParameters 中,则为编译时错误。
public static method getInstance(List<String> a, List<String> b, String c){
// duplicated parameter names ---> | | |
result = (a, b, c) ->
createConnection(a, b, c);
}
您应该在labmda表达式或方法签名中重命名参数名称,例如:
public static method getInstance(List<String> a, List<String> b, String c){
result = (a2, b2, c2) -> createConnection(a2, b2, c2);
}