Java 交叉类型
2018-03-18 17:12 更新
Java Lambda - Java交叉类型
Java 8引入了一种称为交集类型的新类型。
交叉类型是多种类型的交叉。
交叉路口类型可能在投射中显示为目标类型。
在两种类型之间使用Type1 & Type2,以表示类型1,类型2的交集的新类型。
例子
以下代码使用具有交集类型的转型,创建一个新的合成类型,它是所有类型的子类型。
它创建两个接口,Calculator是一个功能接口,可以与lambda表达式一起使用。另一个称为 NonFunction ,它不是函数接口。 为了创建一个lambda表达式并赋值给 NonFunction ,我们使用& 来创建新的子类型。
交叉路口类型NonFunction & Calculator是一个函数接口。
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 标记接口与我们自己的功能接口相交来创建交集类型。
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表达式可序列化。
以上内容是否对您有帮助:

免费 AI IDE


更多建议: