Java 9: Sederhanakan Kelas Anonim dengan Operator Diamond
Operator diamond diperkenalkan dalam Java 7 untuk membuat kode lebih mudah dibaca, tetapi tidak dapat digunakan dengan kelas anonim. Di Java 9, operator diamond juga dapat digunakan dengan kelas anonim untuk menyederhanakan kode dan meningkatkan keterbacaan. Pertimbangkan kode berikut sebelum Java 9.
Tester.java
Live Demo
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(); } Output
1 2 Test
Dengan Java 9, kita dapat menggunakan operator <> dengan kelas anonim seperti yang ditunjukkan di bawah ini.
Tester.java
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(); } Output
1 2 Test