Comparator & Serializable这行代码是什么意思呢?
表面上理解确实不好理解。
意思是,将lambda表达式的返回值返回给具有多个接口实现的类型。
如果没有(Comparator & Serializable),那么类型默认就是接收的类型,如果想在此基础上扩展接口,则用(A & B & C)的形式。
怎么验证了,也很简单,用instanceof。
interface MyComparator{
int compare(int a,int b);
}
MyComparator comparator = (MyComparator & Serializable)(c1, c2)->
Integer.compare(3,2)
;
System.out.println(comparator instanceof MyComparator); // true
System.out.println(comparator instanceof Serializable); // true
System.out.println(comparator instanceof Cloneable); // false
MyComparator comparator = (MyComparator & Serializable & Cloneable)(c1, c2)->
Integer.compare(3,2)
;
System.out.println(comparator instanceof MyComparator); // true
System.out.println(comparator instanceof Serializable); // true
System.out.println(comparator instanceof Cloneable); // true
指定同时满足多种泛型