为什么注释@SafeVarargs不能应用于非最终实例方法?

Kum*_*nav 17 java generics variadic-functions

为什么注释@SafeVarargs不能应用于非最终实例方法?

Mar*_*eel 23

如果你声明@SafeVarargs,那么你必须确定它实际上是安全的.如果方法是非final的,则可以在子类中重写它.这种覆盖可能不安全.

通过要求该方法final,开发人员可以保证他所做的声明(即它的varargs使用是安全的)实际上总是正确的(前提是开发人员实际上提供了一个安全的varargs方法),并且它不是实际上由子类打破错误地重新实现该方法.