Có, chúng ta có thể sử dụng diamond operator với anonymous inner class kể từ Java 9.
Mục đích dùng diamond operator là tránh mã thừa (redundant code) và làm cho dễ đọc hơn bằng cách không còn dùng kiểu generic ở vế phải của biểu thức. Diamond operator trước đây chỉ dùng cho class thường (normal classes) chứ không cho anonymous inner classes trong Java 7. Nếu thử dùng cho anonymous inner classes, compiler ném lỗi.
Ví dụ
import java.util.*;
public class DiamondOperatorTest {
public static void main(String args[]) {
String[] str = {"Raja", "Adithya", "Jai", "Chaitanya", "Vamsi"};
Iterator<String> itr = new Iterator<>() {
// Anonymous inner class
int i = 0;
public boolean hasNext() {
return i < str.length;
}
public String next() {
if(!hasNext()) {
throw new NoSuchElementException();
}
return str[i++];
}
};
while(itr.hasNext()) {
System.out.println(itr.next());
}
}
}
Kết quả
Raja Adithya Jai Chaitanya Vamsi