有时在编写类时,您需要一些辅助方法来处理一些简单的事情(以某种方式更改字符串或进行一些简单的计算)。
如果辅助功能足够小(并且任何其他类都不需要),那么在此类中编写辅助方法是有意义的。
现在:假设您不需要访问任何成员变量,将此方法设为 private
或 private 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/