Java Diamond 运算符:简化 Java 7+ 中的泛型
Java 钻石运算符
Java 7 中引入了菱形运算符,以使泛型代码更具可读性。泛型是一种参数类型。使用泛型,我们可以传递任何类型的对象以供类方法处理。例如,如果我们在 Java 7 之前创建一个字符串列表,那么我们必须使用以下语法用 ArrayList 对象实例化一个字符串列表。
<前>07前>从Java 7开始,我们可以使用菱形运算符来简化上述语法,如下 -
<前>17前>但它不能与匿名内部类一起使用。例如,在 Java 9 之前的以下语法中,我们不能省略菱形运算符中的对象类型。
<前>24前>匿名类中的钻石运算符
在 Java 9 中,菱形运算符也可以与匿名类一起使用,以简化代码并提高可读性。
<前>38前>Java 7、Java 8 中的钻石运算符
在下面的示例中,我们为接受泛型参数的抽象类 Handler 创建了匿名类,并在创建匿名类时传递对象类型,因为我们必须传递类型参数,否则程序将无法编译。
示例
<前>47前>输出
让我们编译并运行上面的程序,这将产生以下结果 -
<前>55前>钻石运算符 Java 9 及以上版本
在 Java 9 中,我们可以将 <> 运算符与匿名类一起使用,如下所示。
示例
在下面的示例中,我们为抽象类 Handler 创建了匿名类,该抽象类接受通用参数,但在创建匿名类时没有对象类型,因为我们不需要传递类型参数。编译器自行推断类型。
<前>67前>输出
让我们编译并运行上面的程序,这将产生以下结果 -
<前>79前>java