Java 9 @SafeVarargs 注解

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

它是一个注解,应用于接受可变参数的方法或构造函数。它用于确保该方法不会对其可变参数执行不安全的操作。

Java 9 Safe Varargs Annotation

它包含在 Java7 中,并且只能应用于

  • Final 方法
  • 静态方法
  • 构造函数

从 Java 9 开始,它也可以用于 private 实例方法

注意:@SafeVarargs 注解只能应用于无法重写的方法。应用于其他方法将抛出编译时错误。

让我们看一些例子,在第一个例子中,我们没有使用 @SafeVarargs 注解并编译代码。看看会发生什么?

Java 9 @SafeVarargs 注解示例

它在编译时产生警告消息,但编译没有错误。

输出

At compile time:
Note: SafeVar.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
At runtime:
[Laptop, Tablet]

这是一个编译器生成的关于不安全的可变参数类型的警告。

为了避免它,我们应该使用 @SaveVarargs 注释方法,就像我们在下面的例子中所做的那样。


Java 9 @SafeVarargs 注解示例

现在,编译器不会产生警告消息,代码编译并成功运行。

输出

[Laptop, Tablet]

注意:要在私有实例方法上应用 @SaveVarargs 注解,请仅使用 Java 9 或更高版本编译代码。

如果我们使用旧版本的 Java 编译以下代码会发生什么?


Java @SafeVarargs 注解示例

输出

[Laptop, Tablet]

下一个主题集合工厂方法