Skip to content

在 Java 中,断言(Assertion)是一种用于在代码中插入检查点的机制。它用于在程序执行过程中验证某个条件是否为真。如果断言的条件为假,那么程序会抛出一个AssertionError异常。

断言在开发和调试过程中非常有用,可以帮助开发人员在代码中插入一些自定义的检查,以确保程序的正确性。当程序达到某个关键点时,断言可以帮助我们验证程序的状态是否符合预期。

要在代码中使用断言,可以使用assert关键字后跟一个布尔表达式。例如:

int x = 10;
assert x > 0;

// 或者使用带有断言消息的形式
assert x > 0 : "x 必须大于 0";

在上面的示例中,第一个断言检查变量x是否大于0,如果不满足条件,程序会抛出AssertionError异常。第二个断言还提供了一个自定义的错误消息,当条件不满足时,将会显示该消息。

请注意,默认情况下,Java 虚拟机会禁用断言。要启用断言,可以使用-ea参数运行 Java 程序,例如:

java -ea MyApp

这将启用所有的断言语句。如果只想启用特定的断言语句,可以使用-ea:package.class参数,例如:

java -ea:com.example.MyClass MyApp

这将仅启用com.example.MyClass类中的断言语句。

断言在生产环境中通常被禁用,因为它们会影响程序的性能。因此,它们更适合用于开发和调试阶段,以确保代码的正确性。