【问题标题】:Java make methods static when possible, good practise?Java尽可能使方法静态化,好习惯吗?
【发布时间】:2011-11-19 14:33:28
【问题描述】:

我将编译器设置为警告我可以设为静态的方法。

这些方法大多是一些帮助器来做计算,为传递的对象设置属性等等。

我应该将它们设为静态,还是表明我的编码风格是城市 (CN)?

【问题讨论】:

  • 我不认为有任何规则可以让它们全部为静态或非静态。在我看来,静态应该在它所属的地方使用——属于类而不是实例的方法,例如实用方法,而不是在不属于它的地方使用。

标签: java eclipse compiler-construction coding-style static


【解决方案1】:

对于您以后想要抽象的事物使用静态方法时要小心。静态方法不支持交换实现,因为在消费类和实现类之间有硬链接。

话虽如此,我认为仍然有适合静态方法的地方(实用程序类)。

【讨论】:

  • @HovercraftFullOfEels 好昵称
【解决方案2】:

一般来说,实用方法和属于该类的其他东西应该是静态的。面对不访问实例状态的方法,您应该先问问自己,子类是否可以合理地覆盖提供依赖于状态的实现的方法,然后再将其设为静态。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      将方法设为静态可能是一种很好的做法,因为您知道静态方法不需要访问任何实例数据。出于这个原因,它也有一个小的性能提升。

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 1970-01-01
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多