Java 9 钻石操作符(Diamond Operator)

Java 9  钻石操作符(Diamond Operator) Java 9 新特性

钻石操作符是在 java 7 中引入的,可以让代码更易读,但它不能用于匿名的内部类。

在 java 9 中, 它可以与匿名的内部类一起使用,从而提高代码的可读性。

考虑以下 Java 9 之前的代码:

实例

publicclassTester{publicstaticvoidmain(String[]args){Handler<Integer> intHandler = newHandler<Integer>(1){ @Overridepublicvoidhandle(){System.out.println(content); }}; intHandler.handle(); Handler<? extendsNumber> intHandler1 = newHandler<Number>(2){ @Overridepublicvoidhandle(){System.out.println(content); }}; intHandler1.handle(); Handler<?> handler = newHandler<Object>("test"){ @Overridepublicvoidhandle(){System.out.println(content); }}; handler.handle(); }}abstractclassHandler<T> {publicTcontent; publicHandler(Tcontent){this.content = content; }abstractvoidhandle(); }

执行输出结果为:

1
2
Test

在 Java 9 中,我们可以在匿名类中使用 <> 操作符,如下所示:

实例

publicclassTester{publicstaticvoidmain(String[]args){Handler<Integer> intHandler = newHandler<>(1){ @Overridepublicvoidhandle(){System.out.println(content); }}; intHandler.handle(); Handler<? extendsNumber> intHandler1 = newHandler<>(2){ @Overridepublicvoidhandle(){System.out.println(content); }}; intHandler1.handle(); Handler<?> handler = newHandler<>("test"){ @Overridepublicvoidhandle(){System.out.println(content); }}; handler.handle(); }}abstractclassHandler<T> {publicTcontent; publicHandler(Tcontent){this.content = content; }abstractvoidhandle(); }

执行输出结果为:

1
2
Test

Java 9  钻石操作符(Diamond Operator) Java 9 新特性