该钻石运算符在不断推出的Java 7,使代码更易读,并且不能用于匿名内部类。在Java 9中,diamond运算符可以与匿名内部类一起使用,以提高代码的可读性。
在Java 9中,我们可以在匿名类中使用菱形<>运算符,如下所示:
public class DiamondOperatorTest {
   public static void main(String args[]) {
      Handler<Integer> intHandler = new Handler<>(1) {
         @Override         public void handle() {
            System.out.println(data);
         }
      };
      intHandler.handle();
      Handler<? extends Number> intHandler1 = new Handler<>(2) {
         @Override         public void handle() {
            System.out.println(data);
         }
      };
      intHandler1.handle();
      Handler<?> handler = new Handler<>("test") {
         @Override         public void handle() {
            System.out.println(data);
         }
      };
      handler.handle();
   }
}
abstract class Handler<T> {
   public T data;
   public Handler(T data) {
      this.data = data;
   }
   abstract void handle();
}输出结果
1 2 test