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<String> itr = new Iterator<String>() {      // 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());
      }
   }
}

输出

Raja
Adithya
Jai
Chaitanya
Vamsi

更新于:21-Feb-2020

已查看 118 次

开启你的 职业生涯

完成课程获得认证

开始
广告