【发布时间】:2011-01-29 04:25:27
【问题描述】:
让我们假设在我的编码环境中已经强加了一条规则(或经验法则),即类上不使用、修改或以其他方式需要任何实例变量来完成其工作的任何方法,都是做成静态的。这样做是否有任何固有的编译时间、运行时或任何其他缺点?
(为进一步澄清而编辑)
我知道这个问题有点开放且含糊不清,因此我对此表示歉意。我询问的意图主要是在“帮助”方法的背景下。实用程序类(具有私有 CTOR,因此它们不能被实例化)作为我们已经使用的静态方法的持有者。我在这里的问题更多的是这些帮助主类 API 的小方法。
我可能在一个类上有 4 或 5 个主要的 API/实例方法来完成实际工作,但在这样做的过程中,它们共享一些可能只对 API 方法的输入参数起作用的通用功能,并且不是内部状态。这些是我通常提取到它们自己的辅助方法中的代码部分,如果它们不需要访问类的状态,请将它们设为静态。
因此,我的问题是,这本质上是一个坏主意吗?如果是,为什么? (或者为什么不呢?)
【问题讨论】:
-
这几乎是Java中
static方法的定义 -
@fuzzy:不,不是。这是一个方法何时可以
static的定义。 -
看到目前为止的答案,人们在这个问题上有些分歧。看看正确的答案是否会浮出水面会很有趣,这对 SO 社区来说是一个很好的测试。那,或者乔恩·斯基特会出现,把它赶出公园。
标签: java runtime static-methods