在私有实用程序类构造函数中首选使用的Throwable是什么?
问题内容:
《有效的Java(第二版)》第4项讨论了如何使用私有构造函数强制执行非实例性。这是本书中的代码示例:
public final class UtilityClass {
private UtilityClass() {
throw new AssertionError();
}
}
但是,AssertionError
似乎并没有正确的选择。什么都没有被“断言”,这就是API定义使用AssertionError的方式。
Throwable
在这种情况下通常有什么不同吗?通常只会给将军Exception
传达信息吗?还是为此编写一个习惯Exception
?
这是非常琐碎的,但是从样式和标准的角度来看,我想我只是对它感到好奇。
问题答案:
有一个断言:“我断言永远不会调用此构造函数”。因此,的确AssertionError
是正确的。