gpt4 book ai didi

java - lambda 表达式是否作为接口(interface)抽象方法的实现?

转载 作者:行者123 更新时间:2023-12-02 06:57:40 30 4
gpt4 key购买 nike

下面的 lambda 表达式:

    new Thread(() -> 
doSomething()
).start();
  1. lambda 表达式 () -> doSomething() 是否实现了 public abstract void run();
  2. 在接口(interface)只有一个方法和两个参数的情况下,(param1, param2) -> {} 是否有效?
  3. 如何处理具有两个使用 lambda 表达式的抽象方法的接口(interface)?

感谢任何能帮助我的人。

最佳答案

  1. Does the lambda expression () -> doSomething() implement the public abstract void run();?

是的,lambda 被脱糖为匿名类型,该匿名类型使用使用 lambda 语法提供的代码实现 Runnable

  1. Would (param1, param2) -> {} work in the cases where an interface has only one method with two parameters?

是的,lambda 形状 与接口(interface)方法的形状匹配很重要。

  1. What to do with interfaces with two abstract methods using lambda expressions?

您不能在这里直接使用 lambda,但典型的解决方法是定义一个实现接口(interface)的具体类,其构造函数采用两个适当形状的 lambda。类中的实现方法委托(delegate)给这些 lambda 对象。

关于java - lambda 表达式是否作为接口(interface)抽象方法的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28069201/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com