lambda 表达式是否作为接口抽象方法的实现?
Does lambda expression work as an implementation of abstract method of interface?
下面的lambda表达式:
new Thread(() ->
doSomething()
).start();
- lambda 表达式
() -> doSomething()
是否实现了 public abstract void run();
?
- 在接口只有一个方法和两个参数的情况下,
(param1, param2) -> {}
会工作吗?
- 如何处理具有两个使用 lambda 表达式的抽象方法的接口?
感谢任何能帮助我的人。
您的 lambda 表达式的行为类似于实现 Runnable 的抽象 class 实例,但不一定作为抽象 class 实例实现。
是。
lambda 表达式不能用于预期具有多个抽象方法的接口。 lambda 表达式只能用在需要函数式接口的地方,这意味着单个抽象方法。
- Does the lambda expression
() -> doSomething()
implement the public abstract void run();
?
是的,lambda 被脱糖为匿名类型,它使用使用 lambda 语法提供的代码实现 Runnable
。
- Would
(param1, param2) -> {}
work in the cases where an interface has only one method with two parameters?
是的,lambda 形状 与接口方法的形状匹配很重要。
- What to do with interfaces with two abstract methods using lambda expressions?
您不能在此处直接使用 lambda,但典型的解决方法是定义具体的 class 实现接口,其构造函数采用两个适当形状的 lambda。 class 中的实现方法委托给这些 lambda 对象。
下面的lambda表达式:
new Thread(() ->
doSomething()
).start();
- lambda 表达式
() -> doSomething()
是否实现了public abstract void run();
? - 在接口只有一个方法和两个参数的情况下,
(param1, param2) -> {}
会工作吗? - 如何处理具有两个使用 lambda 表达式的抽象方法的接口?
感谢任何能帮助我的人。
您的 lambda 表达式的行为类似于实现 Runnable 的抽象 class 实例,但不一定作为抽象 class 实例实现。
是。
lambda 表达式不能用于预期具有多个抽象方法的接口。 lambda 表达式只能用在需要函数式接口的地方,这意味着单个抽象方法。
- Does the lambda expression
() -> doSomething()
implement thepublic abstract void run();
?
是的,lambda 被脱糖为匿名类型,它使用使用 lambda 语法提供的代码实现 Runnable
。
- Would
(param1, param2) -> {}
work in the cases where an interface has only one method with two parameters?
是的,lambda 形状 与接口方法的形状匹配很重要。
- What to do with interfaces with two abstract methods using lambda expressions?
您不能在此处直接使用 lambda,但典型的解决方法是定义具体的 class 实现接口,其构造函数采用两个适当形状的 lambda。 class 中的实现方法委托给这些 lambda 对象。