Diamond operator giới thiệu trong Java 7 để code dễ đọc hơn, nhưng không dùng cho anonymous inner class. Trong Java 9, diamond operator có thể dùng với anonymous inner class cải thiện readability.
Trong Java 9, dùng diamond <> operator trong anonymous class như sau:
Ví dụ
public class DiamondOperatorTest {
public static void main(String args[]) {
Handler<Integer> intHandler = new Handler<>(1) {
@Override
public void handle() {
System.out.println(data);
}
};
intHandler.handle();
Handler<? extends Number> intHandler1 = new Handler<>(2) {
@Override
public void handle() {
System.out.println(data);
}
};
intHandler1.handle();
Handler<?> handler = new Handler<>("test") {
@Override
public void handle() {
System.out.println(data);
}
};
handler.handle();
}
}
abstract class Handler<T> {
public T data;
public Handler(T data) {
this.data = data;
}
abstract void handle();
}
Kết quả
1 2 test