是否有与Integer :: sum相乘的乘法?

时间:2016-10-18 20:30:19

标签: java lambda java-8 higher-order-functions method-reference

从Java 8开始,Integer类有一个静态sum方法,它增加了两个整数:

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

我可以通过Integer::sum将此方法传递给高阶函数,我发现它比(a, b) -> a + b更具可读性。

是否有类似的静态乘法方法,所以我不必写(a, b) -> a * b?我无法在Integer课程中找到一个。

2 个答案:

答案 0 :(得分:5)

Math::multiplyExact

  

static int multiplyExact(int x, int y)

     

返回参数的乘积,如果结果溢出int,则抛出异常。

答案 1 :(得分:5)

你可以自己做:

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

回想起来这似乎是显而易见的,但除此之外,我不相信那里实际上是一个包含jdk的方法,它会为你增加,除了 Math#multiplyExactMath::multiplyExact),虽然这可能超出了你的需要。