簡體   English   中英

Java接口&

[英]Java interface &

看不懂是什么??

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是交叉類型。 這種類型的對象可以同時充當AB

這種特殊的交集類型也恰好是“功能接口”類型,這意味着它只有 1 個抽象方法。 這使您可以使用 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方法。 因此,您的代碼將打印出類似於以下內容的內容: Main$$Lambda$1/1642360923@1376c05c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM