抽象类与私有构造函数

我有一个Java类,它只有静态方法和字段,所以我不希望为此创建任何对象。 我可以通过两种方式实现这一点

  1. 放弃类。
  2. 使用私有构造函数。

这两种方法哪一种更好?


解决方案

您应该使用private构造函数。

如果您的类是抽象的,则可以对其进行扩展并创建对象。根据我从问题中的理解,您需要的是不可实例化的类。

发件人Item 4 of Effective java:

试图通过使类抽象来强制非实例化是不起作用的。类可以子类化,子类可以实例化。此外,它还误导用户认为该类是为继承而设计的

相关文章