Код: Выделить всё
class Example {
private Example() {
throw new AssertionError();
}
}
Я не понимаю, является ли AssertionError выдается только из-за отсутствия более подходящих ошибок или потому, что так и должно быть.
Насколько я понимаю, эта ошибка выдается платформой, когда оператор утверждения завершается с ошибкой. Кроме того, в javadoc просто написано:
[An AssertionError is] Выбрасывается, чтобы указать, что утверждение не выполнено.
Но я не вижу, чтобы здесь нарушалось какое-либо утверждение (верно-ложное утверждение).
Конечно, «Вы не должны создавать экземпляр элемента оператор этого класса" был нарушен, но если это логика, стоящая за этим, то мы все должны повсюду выбрасывать AssertionError, а это, очевидно, не то, что происходит.
Кстати, я бы просто бросил
Код: Выделить всё
new IllegalStateException("Must not instantiate an element of this class")
Извините, если это всего лишь небольшое сомнение, но я часто использую этот шаблон в своем коде и Я хочу быть уверенным, что поступаю правильно.
Подробнее здесь: https://stackoverflow.com/questions/248 ... y-own-code
Мобильная версия