断言语句包含两部分:
assert firstPart : secondPart;
我知道firstPart
必须是布尔表达式或布尔变量。但我对secondPart
. 可以是什么??它可能只是作为字符串的错误消息?或者它也可以是一种方法?它应该只返回一个字符串或任何东西?
请澄清与secondPart
of assert 声明相关的要求、限制和细微差别。
断言语句包含两部分:
assert firstPart : secondPart;
我知道firstPart
必须是布尔表达式或布尔变量。但我对secondPart
. 可以是什么??它可能只是作为字符串的错误消息?或者它也可以是一种方法?它应该只返回一个字符串或任何东西?
请澄清与secondPart
of assert 声明相关的要求、限制和细微差别。
第二部分是断言的详细信息。
见jls , 14.10
AssertStatement:
assert Expression1;
assert Expression1:Expression2;
关于 Expression2 它说:
如果评估正常完成,则会创建一个 AssertionError 实例,其“详细消息”是 Expression2 的结果值。
从 JavaSE Programming with Assertions技术说明稍微解释一下,您的“secondPart”(称为 Expression2)“是任何具有值的表达式。(它不能是对声明为 void 的方法的调用。)”
“系统将 Expression2 的值传递给适当的 AssertionError 构造函数,该构造函数将值的字符串表示形式用作错误的详细消息。”
所以“secondPart”可以是任何有值的表达式;该值被转换为它的字符串形式,用于断言抛出的 AssertionError。