jdk1.8的lambda表达式,当两个方法的名称相同,但是参数类型不同,lambda表达式怎么写的
public static void execute(Future<Integer> future){
future = cs.submit(() -> {
return 1;
});
}
public static void execute(Runnable runnable){
threadPool.execute(runnable);
}
类似这种,
public static void main(String[] args) {
execute(() -> {
});
}
怎么去识别调用到哪个方法。
根据参数来区分来调用对应的lambda表达式
调用那个不用人为选择,是编译器根据函数的实参类型与行参类型匹配决定的,建议看看函数重载相关知识,自然会明白。
java核心技术 卷1 原书第10版 6.3.2节中,讲到:如果方法只有一个参数,而这个参数的类型可以推导得出,那么甚至可以省略小括号。
这个应该和方法重载的道理是一样的,根据传入的参数去区分