仅使用静态方法的类 - 枚举与否

时间:2016-12-07 07:56:50

标签: java enums static

一次又一次我遇到的情况是我的实用程序类只包含静态方法。

问题不在于将这类课程当作自己的事实,所以不是关于实用类的辩论。我们假设有一个用例,这个类是有意义的。

现在我已经看到了防止实例化/扩展的不同可能性:

  • 私人构造函数和最终类
  • 使用枚举而不是类

这里的最佳做法是什么?你能详细说明这两种可能性的好处/缺点吗?

我个人更喜欢枚举解决方案,因为它完全可以防止实例化和扩展开箱即用,但也许我错了。

谢谢你!

1 个答案:

答案 0 :(得分:4)

我更喜欢前者。

首先,在我编写实用程序类时,我一直在使用带有私有构造函数的final类。我从来没有想过使用枚举。

不使用枚举的主要原因是你仍然可以在技术上写下这样的东西:

MyEnum var = MyEnum.valueOf("Hello");

并且编译器没有说出任何关于它的事情,甚至不是IntelliJ IDEA!