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

使用私有静态方法

鲁洋
2023-03-14
问题内容

您如何看待使用 私有静态方法

就个人而言,我更喜欢使用 静态 私有方法而不 是非 静态 方法,只要它不需要访问任何实例字段即可。

但是我听说这种做法违反了OOP原则。

编辑:我想从样式的角度来看,而不是性能。


问题答案:

一个privatestatic方法本身本身并没有违反OOP,但是当类上有很多不需要(也不能*)访问实例字段的方法时,您就不会以OO方式进行编程,因为“对象”表示状态+一起定义的状态操作。如果这些方法不需要任何状态,为什么还要将它们放在该类上?

(*)=原则上,由于Java中的类级别可见性,所以类上的静态方法 可以 访问该类对象的实例字段,例如:

class Test
{
  int field = 123;

  private static void accessInstance(Test test)
  {
    System.out.println(test.field);
  }
}

当然,您需要自己将引用传递给实例(this指针),但实际上,您是在模仿实例方法。仅出于完整性而提及此内容。



 类似资料:
  • 我有一个关于静态方法访问的问题。我有一个类,其中有4个静态方法。如代码所示: } 我正在从下面的代码调用来自onLoadShipperDetailsListCtrl()的setSortingEnable()方法: } 因此,如果我从其他类调用setSortingEnabled()方法,我会认为它是公共的,而其他方法是私有的,但它会给我一个错误:Java . lang . nosuchmethode

  • 我想知道是否有一种方法来验证和调用一个模拟,该模拟是为一个私有静态方法创建的,该私有静态方法是从一个被测试的公共静态方法调用的。 下面是我正在测试的公共静态方法 我已经使用powermokito对私有静态方法进行了如下嘲弄:

  • 问题内容: 我正在尝试模拟私有静态方法。见下面的代码 这是我的测试代码 但是我运行的每个瓦片都会出现此异常 我想我在嘲弄东西时做错了什么。有什么想法我该如何解决? 问题答案: 为此,您可以使用和。 此外,您必须在测试类中指定PowerMock运行器,并准备要进行测试的类,如下所示: 希望对您有帮助。

  • 问题内容: 我想调用一个私有静态方法。我有名字 我听说可以使用Java反射机制来完成。我该怎么做? 编辑: 我在尝试调用该方法时遇到的一个问题是如何指定其参数的类型。我的方法收到一个参数,其类型为Map。因此,我不能这样做(在运行时,由于Java Type擦除,没有Map这样的东西)。是否有另一种方法来获得该方法? 问题答案: 假设您要调用MyClass.myMethod(int x);

  • 可以用调用私有静态方法吗? 此代码引发异常: 如果我将方法的访问修饰符更改为,它就会工作。

  • 暴露的问题: 我想修改一些静态字段android.os.构建,如android.os.构建。董事会,android.os.构建。设备,android.os.构建。显示。 构建中有3个私有静态方法(私有静态字符串getString(String属性)、私有静态字符串[]getStringList(String属性、字符串分隔符)、私有静态long getLong(String属性))。Java语言