我不明白这是什么??
interface A{
void foo();
}
interface B{
void foo();
}那么(A & B)的结果是什么?
System.out.println((A & B) () -> {
System.out.println("1");
System.out.println("2");
});有人能帮帮我吗?
发布于 2021-07-13 17:10:47
A & B是交叉点类型。此类型的对象既可以充当A,也可以充当B。
这个特殊的交集类型恰好也是一个“函数接口”类型,这意味着它只有一个抽象方法。这使您可以使用lambda-expression实例化此类型的对象。A & B是一种“功能接口”类型,因为A和B都有具有完全相同类型签名的foo-method。
这就是这段代码的意思。您正在实例化一个A & B类型的对象,使用foo函数实现-method函数。
(A & B) () -> {
System.out.println("1");
System.out.println("2");
}System.out.println将使用它的toString-method打印出这个lambda对象。请注意,它不会调用实际的foo-method。因此,您的代码将输出类似以下内容的内容:Main$$Lambda$1/1642360923@1376c05c
https://stackoverflow.com/questions/68359319
复制相似问题