Java 交叉類型

2018-03-18 17:12 更新

Java Lambda - Java交叉類型


Java 8引入了一種稱為交集類型的新類型

交叉類型是多種類型的交叉。

交叉路口類型可能在投射中顯示為目標類型。

在兩種類型之間使用Type1 & Type2,以表示類型1,類型2的交集的新類型。

例子

以下代碼使用具有交集類型的轉型,創(chuàng)建一個新的合成類型,它是所有類型的子類型。

它創(chuàng)建兩個接口,Calculator是一個功能接口,可以與lambda表達式一起使用。另一個稱為 NonFunction ,它不是函數(shù)接口。 為了創(chuàng)建一個lambda表達式并賦值給 NonFunction ,我們使用& 來創(chuàng)建新的子類型。

交叉路口類型NonFunction & Calculator是一個函數(shù)接口。

public class Main {
  public static void main(String[] argv) {

    NonFunction nonFunction = (NonFunction & Calculator) (x,y)-> x + y;
  }  
}

@FunctionalInterface
interface Calculator{
  long calculate(long x, long y);
}

interface  NonFunction{
}

例2

以下代碼通過將 java.io.Serializable 標記接口與我們自己的功能接口相交來創(chuàng)建交集類型。

public class Main {
  public static void main(String[] argv) {

    java.io.Serializable ser = (java.io.Serializable & Calculator) (x,y)-> x + y;
  }  
}

@FunctionalInterface
interface Calculator{
  long calculate(long x, long y);
}

以這種方式,我們使一個lambda表達式可序列化。



以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號