You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A sintaxe de referência a um método é uma novidade do Java 8. Com ela é possível fazer referência a métodos específicos, em quatro ocasições diferentes:
14
+
15
+
* Referências a métodos estáticos -> `String::valueOf`
16
+
* Referências a métodos de um objeto -> `instanciaDeString::isEmpty`
17
+
* Referências a métodos de um tipo de objeto -> `String::isEmpty`
18
+
* Referências a construtores -> `String::new`
19
+
20
+
A seguir serão apresentadas as ocasiões em que cada uma dessas referências é útil.
21
+
22
+
. Chamadas a métodos estáticos em expressões lambda podem virar uma referência ao método.
Nesse exemplo o compilador "descobre" ainda mais coisas que nos exemplos anteriores. Ao escrever apenas a referência ao método, ele entende que o primeiro argumento `x` será a instância de `Integer` onde o método `compareTo` será chamado. E também que o segundo argumento `y` é a instância de `Integer` que será passada como argumento para o método `compareTo`.
101
+
102
+
. Chamadas a um construtor também podem ser representadas como uma referência a um método.
Esse exemplo é muito parecido com o anterior, com a única diferença sendo que o método referenciado é um construtor. Perceba que o construtor também recebe um parâmetro e, assim como no exemplo anterior, o compilador entende que o argumento da função lambda deve ser passado para o construtor que foi chamado.
118
+
119
+
. Expressões lambda complexas não podem ser convertidas em referência a método, como a expressão abaixo:
Como nesse caso temos uma outra `String` `+ "2"` sendo acrescentada no construtor, não há como representar isso com uma simples referência ao construtor.
0 commit comments