Groovy的断言对于生产代码来说是一个好主意吗?不像Java的断言?

2022-09-02 10:24:04

在Java中,众所周知,使用关键字通常是一个坏主意,因为它的行为取决于运行时环境(默认情况下它不做任何事情,除非将-enableassertion传递给java运行时)。assert

Groovy的断言不同吗?它是否始终在生产代码中执行,是否建议在生产代码中使用?(在Java中,你会使用像Preditions这样的东西)

从我的理智测试来看,似乎默认情况下没有任何标志,而且它实际上比Java关键字更强大(请参阅Power Assert) - 我只是在寻找一个官方/完整的答案,而不是我的轶事。assert


答案 1

Groovy 断言始终在生产代码中执行,我建议在生产中使用。我认为以下内容大致等效,但Groovy版本更紧凑

槽的

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

爪哇岛

if (!file.exists()) {
    throw new SomeRuntimeException(file + " does not exist");
}

答案 2

推荐