Почему в Java 8 появился новый оператор «::» для ссылок на методы?

В Java 8 ссылки на методы выполняются с использованием:: оператор.

Например

// Class that provides the functionality via it's static method
public class AddableUtil {
  public static int addThemUp(int i1, int i2){
    return i1+i2;
  }
}

// Test class
public class AddableTest {
  // Lambda expression using static method on a separate class
  IAddable addableViaMethodReference = AddableUtil::addThemUp;
  ...
}

Вы можете видеть, чтоaddableViaMethodReference теперь действует как псевдонимAddableUtil::addThemUp, ТакaddableViaMethodReference() будет выполнять то же действие, что иAddableUtil.addThemUp() и вернуть то же значение.

Почему они решили ввести новый оператор вместо того, чтобы использовать уже существующий? Я имею в виду, выполнить функцию, когда имя функции заканчивается() и вернуть ссылку на функцию, когда нет трейлинга().

Выполнение метода

AddableUtil.addThemUp();

Ссылка на метод

AddableUtil.addThemUp;

Разве это не будет намного проще и понятнее? НАСКОЛЬКО МНЕ ИЗВЕСТНО,AddableUtil.addThemUp в настоящее время (Java 7) не служит никаким другим целям и выдает ошибку компиляции. Почему бы не использовать эту возможность вместо создания совершенно нового оператора?

Ответы на вопрос(3)

Ваш ответ на вопрос