是的,从Java9开始,我们可以将钻石运算符(Diamond Operator) 与匿名内部类一起使用。
使用钻石运算符的目的是避免冗余代码,并通过不再在表达式右侧使用泛型类型使其更具可读性。钻石运算符只用于普通类,而不用于java7中的匿名内部类。如果我们尝试将其用于匿名内部类,编译器将抛出一个错误。
在下面的示例中,我们使用了带有匿名内部类的钻石运算符。
import java.util.*; public class DiamondOperatorTest { public static void main(String args[]) { String[] str = {"Raja", "Adithya", "Jai", "Chaitanya", "Vamsi"}; Iterator<String> itr = new Iterator<String>() { //匿名内部类 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()); } } }
输出结果
Raja Adithya Jai Chaitanya Vamsi