java @SafeVarargs为什么私有方法需要是最终的

发布于 2021-01-30 16:15:04

我在内部类中有一个私有方法,我想使用SafeVarargs批注。但是,我需要使用静态方法或最终方法。为什么私有方法也需要最终确定?这不是多余的吗?

关注者
0
被浏览
124
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    这是多余的,并且您提出了一个很好的观点。

    我认为要求final或static的真正原因是强制不能重写该方法,因此子类不能以使@SafeVarargs注释对方法的定义无效的方式篡改数据。

    但是,尽管这是多余的,但它并不是一个糟糕的决定-
    很多时候,程序员将使每种方法尽可能地私有,然后根据需要缓慢地打开类。如果此方法在私有范围内时被标记为final,则如果必须打开该方法,则只需更改访问级别,它仍然可以具有@SafeVarargs批注。如果有意删除了final,则会出现编译时错误,但是如果已经删除了,则无论谁删除私有访问权(在基于团队的环境中可能不是您自己),谁都不会感到困惑突然删除“
    private”修饰符会使代码不再编译。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看