我不明白它是什么??
interface A{
void foo();
}
interface B{
void foo();
}
那么(A&B(的结果是什么
System.out.println((A & B) () -> {
System.out.println("1");
System.out.println("2");
});
有人能帮我吗?
A & B
是一种交集类型。这种类型的对象既可以充当A
,也可以充当B
。
这种特定的交叉点类型也恰好是一个"交叉点";"功能接口";类型,这意味着它只有一个抽象方法。这使您可以使用lambda表达式实例化此类型的对象。CCD_ 4是";"功能接口";类型,因为A
和B
都具有完全相同类型签名的foo
-方法。
这就是这个代码的含义。您正在实例化一个类型为A & B
的对象,用lambda函数实现foo
-方法。
(A & B) () -> {
System.out.println("1");
System.out.println("2");
}
System.out.println
将使用它的toString
-方法打印出这个lambda对象。请注意,它不会调用实际的foo
-方法。因此,您的代码只会打印出类似的内容:Main$$Lambda$1/1642360923@1376c05c