Latest web development tutorials

Java méthode 8 par défaut

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités


Java 8 nouvelles méthodes d'interface par défaut.

Autrement dit, la méthode par défaut est l'interface peut être mis en œuvre la méthode et ne nécessite pas la classe de mise en œuvre pour mettre en œuvre ses méthodes.

Nous avons juste en face du nom de la méthode d'ajouter un mot-clé par défaut pour mettre en œuvre la méthode par défaut.

Pourquoi cette fonctionnalité?

Tout d'abord, avant que l'interface est une épée à double tranchant, pour le bénéfice de l'abstrait plutôt que pour défaut de programmation spécifique, il est que lorsque vous avez besoin de modifier l'interface, la nécessité de modifier l'ensemble de la classe qui implémente l'interface, le courant cadre de collections Java 8 avant aucune méthode foreach, pense généralement des solutions à JDK ajouter de nouvelles méthodes et la mise en œuvre à l'interface concernée. Toutefois, la version a été libérée, il est en même temps l'ajout de nouvelles méthodes pour l'interface ne modifie pas les mises en œuvre existantes. Par conséquent, l'introduction de la méthode par défaut. Leur but est de résoudre la modification existante et la mise en œuvre de l'interface ne sont pas compatibles avec le problème.

grammaire

La syntaxe de la méthode par défaut est la suivante:

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

Méthode multiple par défaut

Interface a une méthode par défaut, considérons le cas, une classe implémente plusieurs interfaces, et ces interfaces ont la même méthode par défaut, les exemples suivants illustrent la solution de contournement pour cette situation:

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

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

La première solution est de créer votre propre méthode par défaut pour remplacer la méthode de réécriture de l'interface par défaut:

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

La deuxième solution peut utiliser super pour appeler l'interface méthode par défaut spécifiée:

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

méthode par défaut statique

Java 8 Une autre caractéristique est l'interface peut déclarer (et peut fournir une implémentation) de méthode statique. Par exemple:

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

Le procédé de l'exemple de défaut

Nous pouvons utiliser le code suivant pour en savoir plus sur la méthode par défaut, vous pouvez placer le fichier code 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("我是一辆汽车!");
   }
}

Mise en œuvre du script ci-dessus, la sortie est:

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

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités