Java 9 匿名内部类的改进

2025 年 2 月 13 日 | 阅读 2 分钟

Java 9 引入了一个新特性,允许我们对匿名类使用菱形运算符。在 Java 7 中不允许对匿名类使用菱形运算符。

在 Java 9 中,只要推断的类型是可表示的,我们就可以在使用匿名内部类时使用菱形运算符。

可以在 Java 程序中编写的数据类型,如 int、String 等,称为可表示类型。 Java 9 编译器足够智能,现在可以推断类型。

注意:此功能包含在 Java 9 中,用于在匿名内部类中添加类型推断。

让我们看一个例子,我们在没有指定类型的情况下将菱形运算符与内部类一起使用。


Java 9 匿名内部类示例

输出

Java9

尽管我们可以在菱形运算符中显式指定类型,并且编译器不会产生任何错误消息。 参见以下示例,类型是显式指定的。


Java 9 匿名内部类示例

我们得到相同的结果。

输出

Java9

如果使用 Java 8 编译以下代码会发生什么?


匿名内部类示例

Java 8 编译器抛出编译时错误,因为它无法推断类型。 错误消息如下所示。

输出

Java9

下一主题SafeVarargs 注解