我仍然在學習功能接口。我想知道爲什麼我能夠將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不接受。 –