Java中,尽可能将方法声明为静态的是一个好习惯吗?

3

我将编译器设置为警告我有些方法可以被静态化。

这些方法大都是一些辅助进行计算、设置传递对象属性等操作的帮助函数。

我应该将它们静态化,还是这是我编码风格有问题的表现?


2
我认为没有规定说你应该将它们全部设为静态或全部不设为静态。在我看来,静态应该用在它适合的地方——类中属于类而不是实例的方法,比如工具方法,而不应该用在不适合的地方。 - Hovercraft Full Of Eels
4个回答

5

请注意,如果您想要稍后进行抽象处理,则不要使用静态方法。静态方法不支持交换实现,因为使用类和实现类之间存在硬链接。

虽然如此,我认为仍然有适合使用静态方法的地方(如工具类)。


1
@HovercraftFullOfEels 很不错的昵称 - Maarten

2

通常,实用方法和其他属于类的内容应该被设为静态。然而,当你面对一个不访问实例状态的方法时,你应该考虑子类是否可以合理地重写这个方法,提供一个依赖于状态的实现,然后再将它设为静态。


1
所有无状态的实用类都应该被设置为静态。大师们,如果我说错了,请纠正我:无状态的静态方法(不使用全局/静态变量)是线程安全的!

1
将一个方法设为静态的做法是一个好习惯,因为你知道静态方法不需要访问任何实例数据。因此,它还具有一定的性能提升。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接