ตัวดำเนินการเพชร ได้แนะนำใน Java 7 เพื่อทำให้โค้ดอ่านง่ายขึ้น และไม่สามารถใช้กับคลาสภายในที่ไม่ระบุตัวตนได้ ใน Java 9 , ตัวดำเนินการเพชรสามารถใช้กับ ชั้นในที่ไม่ระบุชื่อ เพื่อปรับปรุงความสามารถในการอ่านโค้ด
ใน Java 9 เราสามารถใช้โอเปอเรเตอร์ diamond <> ในคลาสนิรนามดังต่อไปนี้:
ตัวอย่าง
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();
} ผลลัพธ์
1 2 test