Muitas vezes me pergunto por que o Java usa ::para referências de método em vez de ., por exemplo, por que escrever
System.out::println
ao invés de
System.out.println
Obviamente, pode-se simplesmente responder: "porque os designers decidiram". Por outro lado, eu esperava a segunda sintaxe, porque o ponto é a sintaxe Java comum para acessar os membros da classe.
Existe algum motivo especial conhecido para introduzir a nova ::sintaxe em vez de usar a .convenção existente para referências de métodos?