A menudo me pregunto por qué Java usa ::para referencias de métodos en lugar de ., por ejemplo, por qué escribir
System.out::println
en vez de
System.out.println
Por supuesto, uno podría simplemente responder: "porque los diseñadores así lo decidieron". Por otro lado, hubiera esperado la segunda sintaxis porque el punto es la sintaxis Java habitual para acceder a los miembros de la clase.
Entonces, ¿hay alguna razón especial conocida para introducir la nueva ::sintaxis en lugar de usar la .convención existente para referencias de métodos?