当前位置: 首页 > 面试题库 >

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

宋岳
2023-03-14
问题内容

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 将私有方法定型是否有好处?这样会提高性能吗? 我认为“私有最终”没有多大意义,因为私有方法不能被覆盖。因此,方法查找应该像使用final时一样高效。 (如果可能)将私有助手方法设为静态会更好吗? 最好使用什么? 问题答案: 添加方法不会提高Sun HotSpot的性能。HotSpot会在可能添加的地方注意到该方法永远不会被覆盖,因此请一视同仁。 在Java中,方法是非虚拟的。您不能覆盖

  • 本文向大家介绍Java9中私有方法的注解@SafeVarargs,包括了Java9中私有方法的注解@SafeVarargs的使用技巧和注意事项,需要的朋友参考一下 @SafeVarargs注解是在Java7中引入的。此注解适用于接受varargs参数的final和static方法或构造函数。此注解用于确保方法不会对其varargs参数执行不安全的操作。从Java9开始,@SafeVarargs注解

  • 问题内容: 为什么Java中的main方法总是需要参数?为什么我们每次都要写,而不是在使用任何参数时才写? 这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应允许这样做。 这不是面试问题。编程时才想到。 问题答案: 基本上,有四个答案: 因为那是它的设计方式。是的,我知道这是一个循环的原因。但是关键是这就是它的样子,并且不会改变。因此,除非您打算设计自己的语言,否则这个问题

  • 为什么Java中的main方法总是需要参数?为什么我们每次都要编写,而不是在使用任何参数时编写它? 像这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应该允许这样做。 这不是面试问题。编程的时候突然想到的。

  • 问题内容: Python使我们能够在类中创建“私有”方法和变量,方法是在名称前加上双下划线,例如:。那么,如何解释这一点 这是怎么回事?! 我会为那些不太了解的人解释一下。 我在那里所做的是创建一个具有公共方法和私有方法的类,并将其实例化。 接下来,我将其称为public方法。 接下来,我尝试调用其私有方法。 这里看起来一切都很好。我们无法调用它。实际上,它是“私有”的。好吧,实际上不是。在对象上

  • AWS VPC配置有4种场景。但让我们看看这两个: 场景1:1个公共子网。 场景2:1个公共子网和1个私有子网。 由于在公有子网中启动的任何实例都没有 EIP (除非已分配),因此它已无法从 Internet 寻址。然后: 为什么需要私有子网? 私有子网和公共子网到底有什么区别?