Почему аннотация @SafeVarargs
не может применяться к методам неделанных экземпляров?
Почему аннотация @SafeVarargs не применяется к методам неделанных экземпляров?
Ответ 1
Если вы объявите @SafeVarargs
, вы должны быть уверены, что это действительно безопасно. Если метод не является окончательным, его можно переопределить в подклассе. Это переопределение может быть небезопасным.
Требовав, чтобы метод был final
, разработчик может гарантировать, что сделанное им выражение (а именно, что его использование varargs безопасно) на самом деле всегда верно (при условии, что разработчик действительно предоставил безопасный метод varargs) и что он не был фактически нарушен подклассом, неправильно переопределяющим метод.