Latest web development tutorials

Java metodo 8 di default

Java 8 nuove funzionalità Java 8 nuove funzionalità


Java 8 nuovi metodi di interfaccia di default.

In poche parole, il metodo di default è l'interfaccia può essere implementato il metodo e non richiede classe di implementazione per implementare i suoi metodi.

Abbiamo appena davanti al nome del metodo per aggiungere una parola chiave predefinita per implementare il metodo di default.

Perché dovrebbe questa caratteristica?

In primo luogo, prima che l'interfaccia è una spada a doppio taglio, per il beneficio di astratto, piuttosto che per specifico difetto di programmazione è che quando è necessario modificare l'interfaccia, la necessità di modificare l'intera classe che implementa l'interfaccia, la corrente di collezioni di Java quadro 8 prima di alcun metodo foreach, di solito pensare a soluzioni in JDK aggiungere nuovi metodi e implementazione all'interfaccia in questione. Tuttavia, la versione è stata rilasciata, non è allo stesso tempo l'aggiunta di nuovi metodi per l'interfaccia non influenza le implementazioni esistenti. Pertanto, l'introduzione del metodo di default. Il loro scopo è quello di risolvere la modifica esistente e attuazione dell'interfaccia non è compatibile con il problema.

grammatica

La sintassi metodo predefinito è il seguente:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

metodo di default multipli

Interface ha un metodo di default, si consideri il caso, una classe implementa più interfacce, e queste interfacce hanno lo stesso metodo di default, i seguenti esempi illustrano la soluzione per questa situazione:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

public interface fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

La prima soluzione è quella di creare il proprio metodo di default per sovrascrivere il metodo predefinito di riscrivere l'interfaccia:

public class car implements vehicle, fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮汽车!");
   }
}

La seconda soluzione può utilizzare super per chiamare l'interfaccia metodo di default specificato:

public class car implements vehicle, fourWheeler {
   default void print(){
      vehicle.super.print();
   }
}

metodo predefinito statico

Java 8 Un'altra caratteristica è l'interfaccia può dichiarare (e può fornire un'implementazione) metodo statico. Ad esempio:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	// 静态方法
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

Il metodo predefinito dell'esempio

Siamo in grado di utilizzare il seguente codice per scoprire il metodo di default, è possibile inserire il file di codice Java8Tester.java:

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

interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

interface FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print(){
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("我是一辆汽车!");
   }
}

L'attuazione del script di cui sopra, l'uscita è:

$ javac Java8Tester.java 
$ java Java8Tester
我是一辆车!
我是一辆四轮车!
按喇叭!!!
我是一辆汽车!

Java 8 nuove funzionalità Java 8 nuove funzionalità