【发布时间】:2017-08-02 16:31:17
【问题描述】:
@FunctionalInterface
interface MyLambda {
void apply1();
int apply2(int x, int y);
}
现在使用 Lambda 表达式,为什么 Java 不能允许以下两个,因为它清楚地区分了两者:
MyLambda ml1 = () -> System.out.println("Hello");
MyLambda ml2 = (x, y) -> x+y;
【问题讨论】:
-
您不能这样做没有技术原因。不过,它看起来不会那样。语法可能很糟糕,可能会损害单一方法 lambda。它也不是特别有用。添加的方法越多,编写适当的实现类就越有说服力。
-
打电话给
ml1.apply2(x, y)会发生什么? -
感谢大家的cmets。我想我得到了答案,将发布答案