Referencia_Metodos - F4NT0/J4V4 GitHub Wiki
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 |
//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
//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