Opérateur diamant de Java 9

Java 9 新特性Nouveautés de Java 9

L'opérateur diamant a été introduit dans Java 7, ce qui rend le code plus lisible, mais il ne peut pas être utilisé pour les classes internes anonymes.

Dans Java 9, il peut être utilisé avec des classes internes anonymes, ce qui améliore la lisibilité du code.

Considérez le code suivant avant Java 9 :

Exemple

public class Tester { public static void main(String[] args) { Handler<Integer> intHandler = new Handler<Integer>(1) { @Override public void handle() { System.out.println(content); } }; intHandler.handle(); Handler<? extends Number> intHandler1 = new Handler<Number>(2) { @Override public void handle() { System.out.println(content); } }; intHandler1.handle(); Handler<?> handler = new Handler<Object>("test") { @Override public void handle() { System.out.println(content); } }; handler.handle(); } } abstract class Handler<T> { public T content; public Handler(T content) { this.content = content; } abstract void handle(); }

La sortie est :

1
2
Test

Dans Java 9, nous pouvons utiliser l'opérateur <> avec des classes anonymes, comme indiqué ci-dessous :

Exemple

public class Tester { public static void main(String[] args) { Handler<Integer> intHandler = new Handler<>(1) { @Override public void handle() { System.out.println(content); } }; intHandler.handle(); Handler<? extends Number> intHandler1 = new Handler<>(2) { @Override public void handle() { System.out.println(content); } }; intHandler1.handle(); Handler<?> handler = new Handler<>("test") { @Override public void handle() { System.out.println(content); } }; handler.handle(); } } abstract class Handler<T> { public T content; public Handler(T content) { this.content = content; } abstract void handle(); }

La sortie est :

1
2
Test

Java 9 新特性Nouveautés de Java 9

Autres extensions