Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java lambda表达式是否作为接口抽象方法的实现?_Java_Interface_Lambda_Java 8 - Fatal编程技术网

Java lambda表达式是否作为接口抽象方法的实现?

Java lambda表达式是否作为接口抽象方法的实现?,java,interface,lambda,java-8,Java,Interface,Lambda,Java 8,lambda表达式如下所示: new Thread(() -> doSomething() ).start(); lambda表达式是否实现了公共抽象void run() (param1,param2)->{}在一个接口只有一个方法和两个参数的情况下工作吗 如何处理使用lambda表达式的两个抽象方法的接口 谢谢任何能帮助我的人 lambda表达式的行为类似于实现Runnable的抽象类实例,但不一定实现为抽象类实例 对 当需要具有多个抽象方法的接口时,

lambda表达式如下所示:

    new Thread(() -> 
        doSomething()
    ).start();
  • lambda表达式是否实现了
    公共抽象void run()
  • (param1,param2)->{}
    在一个接口只有一个方法和两个参数的情况下工作吗
  • 如何处理使用lambda表达式的两个抽象方法的接口
  • 谢谢任何能帮助我的人

  • lambda表达式的行为类似于实现Runnable的抽象类实例,但不一定实现为抽象类实例

  • 当需要具有多个抽象方法的接口时,不能使用lambda表达式。lambda表达式只能在需要函数接口的情况下使用,这意味着只有一个抽象方法

  • lambda表达式是否实现了
    公共抽象void run()
  • 是的,lambda被分解为一个匿名类型,该类型使用lambda语法提供的代码实现
    Runnable

  • (param1,param2)->{}
    在一个接口只有一个方法和两个参数的情况下工作吗
  • 是的,lambda形状与接口方法的形状匹配很重要

  • 如何处理使用lambda表达式的两个抽象方法的接口

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

    您所说的“但它不一定实现为抽象类实例”是什么意思@stanleyerror您可以阅读有关将lambda表达式和方法引用从Java源代码转换为字节码的内容。您的意思是这样的
    新TwoLambdaExpWrapper((params)->{},(参数)->{}
    ?如果是,如何定义TwoLamDaeXPWrapper类的构造函数