Java 8, Parte 3
Seja bem-vindo a terceira parte da série de tutorias sobre Java 8 e neste tutorial iremos entender o que é e para que serve os métodos default.
Sumário
- Seja bem vindo Lambda
- Interfaces funcionais
- Default Methods
- Method Reference
Default Methods
Vimos no tutorial Seja bem vindo Lambda o método forEach
que está presente na interface Iterable
, mas como este método funciona e por que códigos anteriores ao Java 8 não quebram com a inclusão deste novo método? Vamos analisá-lo:
Isso mesmo, agora podemos utilizar métodos com código dentro de interfaces e todas as classes que implementam estas interfaces terão obrigatoriamente esses novos métodos. Para criar um método default basta utilizar a palavra reservada default
. Vamos analisar também a interface Consumer:
Notamos que existe um default method, vamos ver o que ele faz:
A saída será:
Bem vindo:
Lambda
Bem vindo:
Interfaces funcionais
Bem vindo:
Default methods
Bem útil né? A API Collections ganhou vários métodos default que aumenta consideravelmente as capacidades da API, dentre eles temos o removeIf
e o replaceAll
, muito úteis quando estamos trabalhando com listas.
A saída será:
Lambda
Default methods
Apesar de podermos agora escrever métodos dentro de interfaces isso não representa que o Java passou a aceitar heranças múltiplas, pois ainda tem-se restrições ao utilizar os default methods, um deles é que não é possível utilizar variáveis de instância, já que interfaces não as possui.