Referencia_Metodos - F4NT0/J4V4 GitHub Wiki

Retornar

Referencia para Métodos

  • Java aceita tanto uma expressão lambda quanto uma referência para um método
  • essa referência para um método é esperado uma interface funcional
  • Referências para métodos funcionam tanto com métodos de instância quanto métodos static
  • Quando uma expressão lambda possui um corpo que é apenas uma chamada de método, é mais fácil usar uma referencia
  • Java já sabe quem são os parâmetros a serem utilizados

Tipos de Referência

Tipo Exemplo
Referência para método Static Pessoa::CompararPorIdade
Referência para método de instância de um objeto específico novaComparacao::comparaPorNome
Referência para método de instância de um objeto arbitrário de um tipo específico String::compareToIgrnoreCase
Referência para um construtor HashSet::new
  • Como se constroi:
//Lambda:
(parametro) -> nomeClasse.metodoStatic(parametro)

//Referencia de Método
nomeClasse::metodoStatic 

//Lambda
(parametro1,parametro2) -> parametro1.metodoInstancia(parametro2)

//Referencia de Método
nomeClasse::metodoInstancia

//Lambda
(parametro) -> expressao.metodoInstancia(parametro)

//Referência de Método
expressao::metodoInstancia
  • Exemplos

//Lambda(imprimindo um valor)
(String s) -> System.out.println(s);

//Referencia de método(imprimindo um valor)
System.out::println

//Lambda(pegando um substring)
(String s, int i) -> s.substring(i)

//Referencia de Método(pegando um substring)
String::substring