Оператор контроля Java может позволить Вам указывать сообщение?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

61
задан Eric Leschinski 24 April 2015 в 15:26
поделиться

4 ответа

Вы, конечно, можете:

assert x > 0 : "x must be greater than zero, but x = " + x;

См. Программировать с Утверждениями для получения дополнительной информации.

135
ответ дан slezica 24 November 2019 в 17:03
поделиться
assert (condition) : "some message";

я рекомендовал бы поместить условное выражение в скобках

assert (y > x): "y is too small. y = " + y;

, Воображают, столкнулись ли Вы с кодом как это...

assert isTrue() ? true : false : "some message";

не забывают, что это не имеет никакого отношения, утверждает, что Вы записали бы в JUnit.

17
ответ дан matt burns 24 November 2019 в 17:03
поделиться

Это абсолютно делает:

assert importantVar != null : "The important var was null!";

Это добавит, что "Важный var был пустым" к исключению, которое выдается.

11
ответ дан Jason Coco 24 November 2019 в 17:03
поделиться

Если Вы используете

assert Expression1 : Expression2 ;

, Expression2 используется в качестве сообщения детали для AssertionError.

6
ответ дан Bill the Lizard 24 November 2019 в 17:03
поделиться
Другие вопросы по тегам:

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