在第一个例子,
MyInterface::getLength并
"I am NOT anInteger"帮助解决通用参数
T,并
R以
MyInterface和
Serializable & Comparable<? extendsSerializable & Comparable<?>>分别。
// it compiles since String is a SerializableFunction<MyInterface, Serializable> function = MyInterface::getLength;Builder.of(MyInterface.class).with(function, "I am NOT an Integer");
MyInterface::getLength``Function<MyInterface, Integer>除非您明确声明,否则它并不总是a
,这将导致编译时错误,如第二个示例所示。
// it doesn't compile since String isn't an IntegerFunction<MyInterface, Integer> function = MyInterface::getLength;Builder.of(MyInterface.class).with(function, "I am NOT an Integer");



