我仍然在学习功能接口。我想知道为什么我能够将UnaryOperator
链接到Function
的末尾,而不是IntUnaryOperator
到同一个函数的末尾。链接功能接口 - IntUnaryOperator vs UnaryOperator
UnaryOperator <String> twoOfMe = s -> s + s;
Function <String, Integer> convertMe = s -> Integer.parseInt (s);
UnaryOperator <Integer> twiceMe = n -> 2*n;
IntUnaryOperator doubleMe = n -> 2*n;
int a = twoOfMe.andThen(convertMe).andThen(twiceMe).apply ("2");
int b = twoOfMe.andThen(convertMe).andThen(doubleMe).apply ("2");
int a
作品与twiceMe
但int b
不与doubleMe
工作。
感谢
编辑: 它说,不兼容的类型。必需的int。发现java.lang.Object
你是什么意思的“不工作”?异常?警告 ?不是预期的结果? – azro
仅仅因为andThen()接受一个Function作为参数,而UnaryOperator扩展了Function,但IntUnaryOperator不接受。 –