Что делает ключевое слово Java assert и когда его следует использовать?

В общем, письменный месяц сбрасывается как MMM, 4-значный год как yyyy, поэтому ваша строка формата должна выглядеть так: «dd MMM yyyy»

DateTime.ToString("dd MMM yyyy")
568
задан Ciro Santilli 新疆改造中心996ICU六四事件 11 July 2015 в 08:37
поделиться

3 ответа

Утверждения (посредством ключевого слова assert ) были добавлены в Java 1.4. Они используются для проверки правильности инварианта в коде. Они никогда не должны запускаться в производственном коде и указывают на ошибку или неправильное использование пути кода. Их можно активировать во время выполнения с помощью параметра -ea в команде java , но по умолчанию они не включены.

Пример:

public Foo acquireFoo(int id) {
  Foo result = null;
  if (id > 50) {
    result = fooService.read(id);
  } else {
    result = new Foo(id);
  }
  assert result != null;

  return result;
}
416
ответ дан 22 November 2019 в 22:07
поделиться

Утверждения используются для проверки постусловий и предусловий "никогда не должно сработать". Правильный код никогда не должен нарушать утверждения; когда они срабатывают, они должны указывать на ошибку (надеемся, в месте, близком к тому, где на самом деле находится очаг проблемы).

Примером утверждения может быть проверка того, что определенная группа методов вызывается в правильном порядке (например, что hasNext() вызывается перед next() в Iterator).

12
ответ дан 22 November 2019 в 22:07
поделиться

Пример реального мира из класса Stack (из Утверждение в статьях Java )

public int pop() {
   // precondition
   assert !isEmpty() : "Stack is empty";
   return stack[--num];
}
6
ответ дан 22 November 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: