jdk1.8的lambda表达式 2C

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(() -> {

        });
    }

怎么去识别调用到哪个方法。

4个回答

根据参数来区分来调用对应的lambda表达式

oyljerry
oyljerry 你根据参数获取不同数据
2 年多之前 回复
qq_36074751
qq_36074751 每台明白,上面的这个例子,两个execute方法的lambda写法应该都一样的,但是这个调用的是参数是runnable的哪个,
2 年多之前 回复

调用那个不用人为选择,是编译器根据函数的实参类型与行参类型匹配决定的,建议看看函数重载相关知识,自然会明白。

java核心技术 卷1 原书第10版 6.3.2节中,讲到:如果方法只有一个参数,而这个参数的类型可以推导得出,那么甚至可以省略小括号。

这个应该和方法重载的道理是一样的,根据传入的参数去区分

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问