[英]private static method in class pros and cons?
有时在编写 class 时,您需要一些辅助方法来处理一些简单的事情(以某种方式更改字符串或进行一些简单的计算)。
如果辅助功能足够小(并且任何其他类都不需要),那么在此 class 中编写辅助方法是有意义的。
现在:假设您不需要访问任何成员变量,最好将此方法设为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");
}
}
制作方法 static 或非静态方法是否有优缺点。 有一般的做和不做吗?
我个人会制作方法 static - 它更清楚地表明它不依赖于 object 的 state。 这可能会在线程安全方面产生连锁反应(尽管如果要访问该类型的static成员,则需要小心这一点)。
鉴于它是私有的,您无需担心子类是否想要覆盖它。
您以后总是可以使它成为非静态的-我认为唯一的副作用是可能会更改序列化 ID。 (二进制序列化就是这样的痛苦。)
如果需要访问非静态成员变量,则将其设为非静态,如果不需要,则将其设为 static。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.