Здравствуйте, vsb, Вы писали:
vsb>Меня очень раздражает синтаксис method reference (где ::). Я решительно не понимаю, зачем он нужен и на мой взгляд он ухудшает читаемость кода. Хотелось бы услышать стороннее мнение. Приведу несколько фрагментов кода.
Получается сильно компактнее, когда есть параметры.
public static void sample() {
fooConsumer(Bar::intConsumer);
}
interface Foo {
void foo(int i1, int i2, int i3, int i4);
}
public static void fooConsumer(Foo foo) {
}
public static void intConsumer(int i1, int i2, int i3, int i4) {
}
vsb>Я предполагаю, что method reference может компилироваться в незначительно более быстрый код, но уверен, что разница неизмерима на практике.
Как и многое в java — это зависит от ситуации. Например в этом случае компилятор может точно определить, что не нужно на каждый вызов создавать лямбду.