Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java 8 - Métodos padrão


Java 8 introduz um novo conceito de implementação de método padrão em interfaces. Esse recurso é adicionado para compatibilidade com versões anteriores para que as interfaces antigas possam ser usadas para aproveitar o recurso de expressão lambda do Java 8.

Por exemplo, as interfaces 'List' ou 'Collection' não possuem a declaração do método 'forEach'. Assim, adicionar tal método simplesmente quebrará as implementações da estrutura de coleta. Java 8 introduz o método padrão para que a interface List/Collection possa ter uma implementação padrão do método forEach, e a classe que implementa essas interfaces não precisa implementar o mesmo.

Sintaxe

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

Vários padrões


Com funções padrão em interfaces, existe a possibilidade de uma classe estar implementando duas interfaces com os mesmos métodos padrão. O código a seguir explica como essa ambiguidade pode ser resolvida.
public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

public interface fourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

A primeira solução é criar um método próprio que substitua a implementação padrão.
public class car implements vehicle, fourWheeler {

   public void print() {
      System.out.println("I am a four wheeler car vehicle!");
   }
}

A segunda solução é chamar o método padrão da interface especificada usando super.
public class car implements vehicle, fourWheeler {

   public void print() {
      vehicle.super.print();
   }
}

Métodos padrão estáticos


Uma interface também pode ter métodos auxiliares estáticos do Java 8 em diante.
public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

Exemplo de método padrão


Crie o seguinte programa Java usando qualquer editor de sua escolha em, digamos, C:\> JAVA.

Java8Tester.java

Demonstração ao vivo
public class Java8Tester {

   public static void main(String args[]) {
      Vehicle vehicle = new Car();
      vehicle.print();
   }
}

interface Vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {

   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

Verifique o resultado


Compile a classe usando javac compilador da seguinte forma -
C:\JAVA>javac Java8Tester.java

Agora execute o Java8Tester da seguinte forma -
C:\JAVA>java Java8Tester

Deve produzir a seguinte saída -
I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!

Java

  1. Operadores Java
  2. Comentários Java
  3. Java para cada loop
  4. Strings Java
  5. Classe abstrata Java e métodos abstratos
  6. Interface Java
  7. Classe anônima Java
  8. Java try-with-resources
  9. Anotações Java
  10. Asserções Java