私はJava 8を初めて使用していますが、プリミティブBiConsumer(IntBiConsumerなど)は見つかりませんでしたが、BiFunctionの基本的な特殊化であるToIntBiFunctionがあります。 ToIntBiFunctionと同じIntBinaryOperatorもあります。Java 8にプリミティブBiConsumerがない理由は何ですか?
BiConsumer<Integer,String> wrappedBiConsumer = (i,s) -> System.out.printf("Consume %d %s \n",i,s);
ToIntBiFunction<String,String> toIntFunction = (a,b) -> a.length()* b.length();
- OracleはJava8でIntBiConsumerを提供していない理由理由はありますか?
- "IntBiFunction"のような1つのインターフェイスを持つ代わりに、 "IntBinaryOperator"と "ToIntBiFunction"のような2つのインターフェイスがあるのはなぜですか? (別の目的を果たすためにそこにいるのであれば、両方とも同じ親IntBiFunctionから拡張することができます)
私はかなりの理由でそれを設計し、plsがそれを理解することを確信しています。
可能なすべての機能インタフェースの組み合わせがプリミティブ型に含まれる場合、可能性の数が爆発的になります。私は彼らが一番役に立つと思ったものを選んだと思う。彼らがそれを含めることができなかった理由は本当に設計上の理由はありません。 – ajb
彼らはそれを必要とするAPIを持っていなかったので、彼らは気にしませんでした。 –