Tag: 私人构造函数

没有值的Java枚举和实用程序类与私有构造函数之间的区别

实用类的一个常见事情是给它们一个私有的构造函数 : public final class UtilClass { private UtilClass() {} … } 但不幸的是,一些工具不喜欢那个私人的构造函数。 他们可能会警告说,它从来没有在课堂上被调用,它没有被testing覆盖,该块不包含评论,等等。 如果你这样做,很多警告消失: public enum UtilClass {; … } 我的问题是:除了对未来开发者的无休止的仇恨外,在没有值的枚举和在Java中有私有构造函数的类之间有什么重要的区别? 请注意,我并不是问一个Java枚举与一个具有公共静态final字段的类的优点是什么? 。 我不是决定一个事物列表应该是一堆常量还是一个枚举,我决定把一堆函数放在一个无构造函数的类或一个无价值的枚举中。 另外请注意,我其实不想这样做。 我只是想把这些权衡作为一般语言知识的一部分。 例如,使用枚举来污染自动完成,像UtilClass.values()这样的无用方法。 还有什么其他缺点? 上升空间?