java - 如何使用 Lambda 表达式覆盖两个或多个接口(interface)方法?

标签 java lambda

1.InterfaceOne 是一个具有两种方法的接口(interface),我的问题是如何使用 Lambda 表达式覆盖这两种方法?

interface InOne{

    void m1();
    void m2();
}
public class LambdaExpForTwomethodsInInterface {

    public static void main(String[] args) {

        //For One method overriding
        InOne one=()->{
            System.out.println("InOne m1");
        };
        one.m1();
    }
}

2.如果接口(interface)中有5个方法,但我只想覆盖一个方法,有没有办法使用Lambda exp?

最佳答案

is there any way to that using Lambda exp?

不,它们只能引用 FunctionalInterface

how to override that 2 methods using Lambda expression?

虽然无法使用 lambda 表达式,但您仍然可以使用匿名类来实例化它们:

InOne one = new InOne() {
    @Override
    public void m1() {

    }

    @Override
    public void m2() {

    }
};

关于java - 如何使用 Lambda 表达式覆盖两个或多个接口(interface)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54591931/

相关文章:

java - 如何使用 Java 正确转义 awk 输入的字符串?

java - 想要将 json 对象映射为 java 对象

java - 通过继承改变方法参数

java - 拦截点击/触摸事件而不重写 ViewGroup 或 View 方法

java - 绿色像素的颜色无效

c++ - 是否可以将 C++0x lambda 转换为 clang block ?

c++ - std::remove_reference 有什么意义

c++ - 直接从 C++0x lambda 调用方返回

c# - MVC HTML 帮助程序和 Lambda 表达式

c++ - 如何从 std::function 推断返回值类型?