其他分享
首页 > 其他分享> > 匿名内部类有多种接口怎么用Lambda

匿名内部类有多种接口怎么用Lambda

作者:互联网

Lambda的语法中对实现的接口的名字也简化省略了,那会不会有这么一种情况:一个类的构造器中可以接收多种接口,并且多个接口需要实现的抽象方法中传入的参数都一样,那用Lambda就很难区分到底实现的是哪个接口了。那该怎么办呢?

我写了个测试了一下

interface  Animal{
    void run();
}

interface Person{
    void run();
}

//哺乳动物类
class mammal  {

    public mammal() {
    }

    mammal(Animal animal){

    }
    mammal(Person person){

    }

    public static void main(String[] args) {
        mammal p = new mammal((Person) () -> System.out.println("人跑步"));
    }
}

重点在于 new mammal((Person) () -> System.out.println(“人跑步”));

这个代码中(Person)表明了实现的是Person接口,我感觉是一种强转,告诉编译器,需要实现哪个接口,所以Lambda表达式虽然写法简单,但是在处理这种极端情况下,还是设计很严谨的~

标签:void,接口,Person,匿名,Animal,mammal,类有,Lambda
来源: https://blog.csdn.net/weixin_43876778/article/details/111569724