Deixe-me oferecer uma perspectiva sobre por que adicionamos esse recurso à linguagem, quando claramente não é necessário (todos os métodos refs podem ser expressos como lambdas.)
Observe que não existe uma resposta certa . Qualquer pessoa que diga "sempre use um método ref em vez de um lambda" ou "sempre use um lambda em vez de um método ref" deve ser ignorado.
Esta pergunta é muito semelhante em espírito a "quando devo usar uma classe nomeada em vez de uma classe anônima"? E a resposta é a mesma: quando você achar mais legível . Certamente há casos que são definitivamente um ou definitivamente o outro, mas há uma porção de cinza no meio, e o julgamento deve ser usado.
A teoria por trás do método refs é simples: os nomes são importantes . Se um método tem um nome, então referir-se a ele pelo nome, em vez de por um pacote imperativo de código que no final das contas apenas o invoca e se volta, é frequentemente (mas nem sempre!) Mais claro e legível.
Os argumentos sobre desempenho ou contagem de caracteres são, em sua maioria, pistas falsas e você deve ignorá-los. O objetivo é escrever um código que seja absolutamente claro o que ele faz. Muitas vezes (mas nem sempre!) O método refs vence nessa métrica, então nós os incluímos como uma opção, para serem usados nesses casos.
Uma consideração importante sobre se o método refs esclarece ou ofusca a intenção é se é óbvio a partir do contexto qual é a forma da função que está sendo representada. Em alguns casos (por exemplo, map(Person::getLastName)
é bastante claro a partir do contexto que uma função que mapeia uma coisa para outra é necessária, e em casos como este, as referências de método brilham. Em outros, usar um método ref exige que o leitor se pergunte sobre qual tipo da função está sendo descrita; este é um sinal de aviso de que um lambda pode ser mais legível, mesmo se for mais longo.
Finalmente, o que descobrimos é que a maioria das pessoas no início se afasta dos métodos refs porque eles se sentem ainda mais novos e mais estranhos do que lambdas, e assim inicialmente os acham "menos legíveis", mas com o tempo, quando se acostumam com a sintaxe, geralmente mudam seu comportamento e gravitam em torno de referências de métodos quando podem. Portanto, esteja ciente de que sua própria reação subjetiva inicial "menos legível" quase certamente envolve algum aspecto de viés familiar, e você deve se dar a chance de se sentir confortável com ambos antes de apresentar uma opinião estilística.