Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Diamond operator có thể dùng với anonymous inner class trong Java 9 không?

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