Olá Pessoal, tudo bom?
O artigo de hoje é mais um complemento ao artigo escrito em junho de 2016 e a outro artigo escrito em dezembro de 2017 sobre interfaces. Esse artigo se propõe a inserir um novo aspecto que foi inserido no tipo interface no Java 8. Confira na continuação.
Métodos estáticos e com implementação, agora pode!
Se você é um desenvolvedor antes do Java 8, sabe que para criar métodos estáticos, você tinha que criar uma classe com os métodos descritos lá dentro, veja o exemplo no código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class StringUtils { /** * Verifica se uma String eh vazia. Exemplos: * null - true * "" - true * " " - true * "A" - false * " A " - false */ public static boolean isBlank(String str){ if(str == null){ return true; } if(str.isEmpty()){ return true; } //O metodo trim() elimina espaços na frente e atrás da String if(str.trim().isEmpty()){ return true; } return false; } } |
Um ponto importante aqui é que se você desejasse que a classe não fosse possível de ser instanciada, você deveria criar esta como abstrata.
Para utilizar esse método, bastaria você chamar a classe pelo nome mais o método desejado, sem precisar instanciá-la:
1 2 3 4 5 6 7 8 9 10 11 |
public class LoginBusiness implements AcessoSistema { //Algum código aqui public boolean verificaUsuario(String usuario){ return !StringUtils.isBlank(usuario); } //Algum código aqui } |
Com o advento do Java 8 foi criado os static methods também para as interfaces. Agora ao invés de criar uma classe abstrata você pode utilizar a interface, que pode padrão, não pode ser instanciada no Java.
Vamos agora transformar a classe StringUtils em uma interface StringUtils:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public interface StringUtils { /** * Verifica se uma String eh vazia. Exemplos: * null - true * "" - true * " " - true * "A" - false * " A " - false */ static boolean isBlank(String str){ if(str == null){ return true; } if(str.isEmpty()){ return true; } //O metodo trim() elimina espaços na frente e atrás da String if(str.trim().isEmpty()){ return true; } return false; } } |
Lembrando que qualquer método em uma interface por padrão é público.
A forma de utilizar o método permanece o mesmo, ou seja as classes que hoje utilizam já esse método não precisam ser modificadas.
finnaly{
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply