我有一个java类,它只有静态方法和字段,所以我不希望为此创建任何对象。我可以通过两种方式做到这一点,
- 使课堂弃权
- 使用私有构造函数
两者中哪一个更好?
您应该使用private
构造函数。
如果您的类是抽象的,则可以对其进行扩展并创建对象。根据我对这个问题的理解,你想要的是不可实例化的类。
来自有效java的第4项:
试图通过使类抽象来强制实现非实例化是行不通的。类可以被子类化,子类可以被实例化。此外,它误导用户认为该类是为继承而设计的