package test;
import java.io.Serializable;
import java.util.function.Consumer;
/**
@author gaopei 17-9-22
/
public class Test
{public @interface Test1 {
Class<ClassCastException> excpected();复制代码
}
public void LambdaTestSuccess()
{Consumer<String> consumer = (Consumer<String> & Serializable) System.out::println; Serializable serializable = (Serializable)consumer;复制代码
}
@Test1(excpected = ClassCastException.class)
public void testThrowException()
{Consumer<String> consumer = System.out::println; Serializable serializable = (Serializable)consumer;复制代码
}
public static void main(String[] args) {
}
}
在jdk源码中有很多的&操作符。其实这是向上类型转换。测试如上。可以编译通过。