4

は、Integerクラスが2つの整数を追加し、静的sum方法があります。Integer :: sumの乗算アナログはありますか? Javaの8以来

public static int sum(int a, int b) { 
    return a + b; 
} 

を私は(a, b) -> a + bよりも読みやすい見つけたInteger::sum経由高階関数に、このメソッドを渡すことができます。

同様の乗算のための静的な方法があるので、(a, b) -> a * bを書く必要はありませんか?私はIntegerクラスで見つけられませんでした。

答えて

5

Math::multiplyExact

static int multiplyExact(int x, int y)

結果がintをオーバーフローした場合に例外をスロー、引数の積を返します。

public static int mult(int a, int b) { 
    return a * b; 
} 

これは、振り返ってみると明らかに思えるかもしれないが、それ以外で私はあなたのための乗算JDK-含ま方法は実際にあります信じていない、ため除い:あなたはそれを自分にすることができ

+1

オーバーフロー時の挙動のため、これは '(a、b) - > a * b'と同じではありません。 –

+1

真。 –

+2

実際にOPでは「Math :: multiplyExact」で十分ではないと確信することはできませんが、彼が置き換えようとしているラムダと同じ意味合いである。スローされる可能性のあるメソッド参照で投げられることのないラムダを置き換えることは、私には少し危険です。 –

5

Math#multiplyExactMath::multiplyExact)ですが、これは必要以上のものかもしれません。

関連する問題