与Java的断言不同,Groovy是否对生产代码提出了一个好主意?

在Java中,已知使用assert关键字通常是一个坏主意,因为它的行为依赖于运行时环境(默认情况下它不会执行任何操作,除非将-enableassertion传递给java运行时)。

Groovy的主张是不同的吗? 它总是在生产代码中执行,是否建议在生产代码中使用? (在Java中你会使用像Preconditions这样的东西)

从我的健全性测试来看,似乎默认情况下assert没有任何标志的情况下运行良好,并且它实际上比Java关键字更强大(参见Power Assert ) – 我只是在寻找官方/完整的答案,而不是我的轶事一。

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

Groovy的

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

Java的

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