在 Java 9 中,我们怎样才能在匿名类中使用菱形运算符?

javaobject oriented programmingprogramming更新于 2025/10/22 7:40:17

菱形运算符是在 Java 7 中引入的,目的是提高代码的可读性,但它不能用于匿名内部类。在 Java 9 中,菱形运算符可以与匿名内部类一起使用,以提高代码的可读性。

在 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

相关文章


有用资源