Является ли утверждение Groovy хорошей идеей для производственного кода, в отличие от утверждения Java?

В Java известно, что с помощью assert Ключевое слово, как правило, является плохой идеей, поскольку его поведение зависит от среды выполнения (по умолчанию оно ничего не делает, если только -enableassertion не передается среде выполнения java).

Отличен ли Groovy? Всегда ли он выполняется в рабочем коде и рекомендуется ли его использовать в рабочем коде? (В Java вы должны использовать что-то вроде Предварительных условий)

Из моих тестов в здравом уме кажется, что по умолчанию assert работает хорошо без каких-либо флагов, и что это на самом деле намного мощнее, чем ключевое слово Java (см. Power Assert) - я просто ищу официальный / полный ответ, в отличие от моего анекдотического.

1 ответ

Решение

Groovy assert всегда выполняется в производственном коде, и я рекомендовал использовать в производственном. Я считаю, что следующее примерно эквивалентно, но версия Groovy более компактна

Groovy

assert file.exists(), "$file does not exist"

Джава

if (!file.exists()) {
    throw new SomeRuntimeException(file + " does not exist");
}
Другие вопросы по тегам