断言是一种开发工具和编程语言功能,用于检查程序运行时条件表达式是否为true。 它们在测试和开发过程中很有用,通常在生产代码中省略。 这样做的关键原因是它们要求启用命令行标志,因此如果启用了这些命令行标志,则会限制适当的功能可移植性。 因此,不建议将它们用于生产代码。 他们不是为此设计的。 它们可以替代程序员过去用if语句进行检查的情况。 与if语句和断言在运行时未启用时相比,它们要紧凑得多。 断言是在Java中使用assert关键字完成的。 如果条件评估为false,则抛出AssertionError 感谢Joshua Bloch的语言功能。

要配置断言选项,必须使用-ea或-da命令行标志通过命令行工具“ java”启用或禁用断言 例如,“ java -ea Assert”,其中Assert是Java类文件。 您还可以如下指定特定的类或程序包。 对于类:“ -ea:Class”,“-ea:Package / Class”。 对于包(及其子包):“ -ea:Package…”。 注意省略号(三个连续的期间),它们是格式的一部分。

在Java代码中,断言采用以下两种形式:

  • 断言条件
  • 断言条件:表达式;

在第一种形式中,condition是Java中的条件表达式,结果为True或False。 在第二种形式中,如果条件为假,则执行表达式。 这可以是非void类型的任何表达式。 此Expression的结果的String表示形式将用于形成AssertionError对象。 在这两种情况下,如果条件表达式的结果为false,则抛出AssertionError。

还请参见:

断言示例

基本断言用法:

Java编程语言中的断言

基本断言用法以及添加的Expression示例:

Java编程语言中的断言

使用自定义类实例作为表达式的基本断言用法:

Java编程语言中的断言

还请参见:

捕获由assert生成的AssertionError异常对象:

Java编程语言中的断言

捕获AssertionError对象以在try-catch之外使用:

Java编程语言中的断言

注意! 为了完整起见,我们展示了如何捕获AssertionError。 但是,如果需要, 绝对不要尝试捕获Errors ,而只能捕获 Exceptions!

解析命令行参数并检查条件的程序。 切记:建议不要使用生产代码。

还请参见:

资源:

Java编程语言中的断言

输出:

Java编程语言中的断言

以及更多。 试一试,让我知道您的喜欢:)

想要来源吗? 在这里抓住它

This article was originally published on The Java Report .

翻译自: https://jaxenter.com/assertions-java-150586.html

相关文章:

  • 2022-12-23
  • 2021-11-06
  • 2021-09-20
  • 2021-12-16
  • 2021-12-08
  • 2021-09-09
  • 2021-11-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-29
  • 2021-11-03
  • 2021-12-13
  • 2022-01-12
  • 2021-07-11
相关资源
相似解决方案