Diamond运算符在Java 7中引入,使代码更可读,但它无法与匿名内部类一起使用。在Java 9中,它可以与Annonmous类一起使用,并简化代码并提高可读性。在Java 9之前考虑以下代码。
public class Tester { public static void main(String[] args) { Handler<Integer> intHandler=new Handler<Integer>(1) { @Override public void handle() { System.out.println(content); } }; intHandler.handle(); Handler<? extends Number> intHandler1=new Handler<Number>(2) { @Override public void handle() { System.out.println(content); } }; intHandler1.handle(); Handler<?> handler=new Handler<Object>("test") { @Override public void handle() { System.out.println(content); } }; handler.handle(); } } abstract class Handler<T> { public T content; public Handler(T content) { this.content=content; } abstract void handle(); }
输出
链接:https://www.learnfk.comhttps://www.learnfk.com/java/java9-inner-class-diamond-operator.html
来源:LearnFk无涯教程网
1 2 Test
在Java 9中,无涯教程可以对匿名类使用<>运算符,如下所示。
public class Tester { public static void main(String[] args) { Handler<Integer> intHandler=new Handler<>(1) { @Override public void handle() { System.out.println(content); } }; intHandler.handle(); Handler<? extends Number> intHandler1=new Handler<>(2) { @Override public void handle() { System.out.println(content); } }; intHandler1.handle(); Handler<?> handler=new Handler<>("test") { @Override public void handle() { System.out.println(content); } }; handler.handle(); } } abstract class Handler<T> { public T content; public Handler(T content) { this.content=content; } abstract void handle(); }
输出
链接:https://www.learnfk.comhttps://www.learnfk.com/java/java9-inner-class-diamond-operator.html
来源:LearnFk无涯教程网
1 2 Test
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)