java - 类中的私有(private)静态方法优缺点?

标签 java static private

有时在编写类时,您需要一些辅助方法来处理一些简单的事情(以某种方式更改字符串或进行一些简单的计算)。

如果辅助功能足够小(并且任何其他类都不需要),那么在此类中编写辅助方法是有意义的。

现在:假设您不需要访问任何成员变量,将此方法设为 privateprivate static 会更好吗

下面的例子:只是实现了一个方法来检查一个字符串是否不是null并且包含foo。

public class SomeClass

...

 public void calculate(String inputString) {
  ...
  boolean foo = getFoo(inputString);
 }

 private (static) boolean getFoo(String inputString) {
  return inputString != null && inputString.contains("foo");
 }

}

将方法设为静态或非静态各有利弊。有一般的做和不做吗?

最佳答案

我个人会将该方法设置为静态的——这样可以更清楚地表明它依赖于对象的状态。这可能会在线程安全方面产生链式 react (尽管如果要访问该类型的static 成员,您需要小心这一点)。

鉴于它是私有(private)的,您无需担心子类是否要覆盖它。

您以后总是可以将其设为非静态 - 我认为唯一的副作用是可能会更改序列化 ID。 (二进制序列化就是这样的痛苦。)

关于java - 类中的私有(private)静态方法优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7007809/

相关文章:

java - 需要一些关于 deeplearning4j 单 RBM 使用的帮助

python - epydoc 隐藏了一些类函数?

static - 动态链接libgnat

java - 混淆何时使用私有(private)字段与 protected 字段

java - 非公有或非私有(private)的变量-Java

java - 不能 Autowiring 接口(interface)

java - ActionMode 样式覆盖我的 Android 应用程序中的主 ActionBar

java - 使用自定义标记 (taglib) 在 JSP 上提示 Eclipse 代码

c++ - 类中静态对象的重要性以及它们与一般对象的区别

android - 在 Android 中使用私有(private)类