在Java 9中,可以在匿名内部类中使用钻石操作符吗?

在Java 9中,可以在匿名内部类中使用钻石操作符吗?

使用菱形运算符的目的菱形运算符是为了避免冗余代码,并通过不再使用右侧的通用类型来使其更具可读性表达式的一侧。 菱形运算符仅用于正常类,但不适用于匿名内部Java 7 中的类。如果我们尝试将其用于匿名内部类,编译器会抛出错误。

在下面的示例中,我们使用了带有匿名内部类的菱形运算符。

示例

import java.util.*; public class DiamondOperatorTest { public static void main(String args[]) { String[] str = {"Raja", "Adithya", "Jai", "Chaitanya", "Vamsi"}; Iterator 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()); } } }登录后复制