繁体   English   中英

class 中的私有 static 方法的优缺点?

[英]private static method in class pros and cons?

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

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

现在:假设您不需要访问任何成员变量,最好将此方法设为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");
 }

}

制作方法 static 或非静态方法是否有优缺点。 有一般的做和不做吗?

我个人会制作方法 static - 它更清楚地表明它依赖于 object 的 state。 这可能会在线程安全方面产生连锁反应(尽管如果要访问该类型的static成员,则需要小心这一点)。

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

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

如果需要访问非静态成员变量,则将其设为非静态,如果不需要,则将其设为 static。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM