有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java接口&

我不明白这是什么

interface A{
    void foo();
}
interface B{
    void foo();
}

那么(A&B)的结果是什么

        System.out.println((A & B) () -> {
            System.out.println("1");
            System.out.println("2");
        });

有人能帮我吗


共 (1) 个答案

  1. # 1 楼答案

    A & B是一种交叉点类型。这种类型的对象既可以作为A对象,也可以作为B对象

    这个特殊的交叉点类型碰巧也是“功能接口”类型,这意味着它只有一个抽象方法。这允许您使用lambda表达式实例化这种类型的对象A & B是一种“函数接口”类型,因为AB都有具有完全相同类型签名的foo-方法

    这就是这个代码的意思。您正在实例化A & B类型的对象,并使用lambda函数实现foo-方法

    (A & B) () -> {
      System.out.println("1");
      System.out.println("2");
    }
    

    System.out.println将使用它的toString-方法打印出这个lambda对象。注意,它不会调用实际的foo-method。因此,您的代码将打印出类似的内容:Main$$Lambda$1/1642360923@1376c05c