匿名内部类有多种接口怎么用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