私はまだ機能的インタフェースを学んでいます。なぜ私はFunction
の最後にUnaryOperator
をチェーンすることができるのか知りたいのですが、同じ機能の最後にIntUnaryOperator
はありません。機能的インタフェースの連鎖 - IntUnaryOperatorと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
で動作しますが、doubleMe
とint b
動作しません。
おかげ
編集: それは互換性のない型を言います。必須のint。見つかったjava.lang.Object
"doesnt work"とはどういう意味ですか?例外?警告?期待された結果ではありませんか? – azro
andThen()はFunctionを引数にとり、UnaryOperatorはFunctionを拡張しますがIntUnaryOperatorはそうでないためです。 –