Подтвердить что ты не робот

Почему Java 8 представила * Integer.sum(int a, int b) *

Я только заметил, что JDK8 ввел этот метод для класса Integer:

 /**
 * Adds two integers together as per the + operator.
 *
 * @param a the first operand
 * @param b the second operand
 * @return the sum of {@code a} and {@code b}
 * @see java.util.function.BinaryOperator
 * @since 1.8
 */
public static int sum(int a, int b) {
    return a + b;
}

В чем смысл этого метода? Почему я должен использовать этот метод вместо использования оператора +? Единственная возможность, о которой я могу думать, это то, что, например, при смешивании строк и ints оператор + меняет значение, поэтому

System.out.println("1"+2+3); // prints 123
System.out.println("1"+Integer.sum(2,3)); // prints 15

но с использованием скобок все равно будет работать

System.out.println("1"+(2+3)); // prints 15
4b9b3361

Ответ 1

Это может быть полезно как ссылка метода (Integer::sum), переданная методу, который требует соответствующего функционального интерфейса (IntBinaryOperator).

Например:

int sum = IntStream.range(1,500).reduce(0,Integer::sum);

Конечно, этот пример может использовать .sum() вместо сокращения. Я просто заметил, что Javadoc для IntStream.sum упоминает это точное сокращение как эквивалентное sum().