我在 Java (Eclipse) 中发现了一种奇怪的断言行为。简单的例子:如果我执行这个......
public static void main (String[] args) {
assert(getA() == "a") : "Invalid";
System.out.println("Assertion successful!");
}
private static String getA()
{
return "a";
}
...它会告诉我“断言成功!” 正如它应该。但是,如果我尝试这个...
public static void main (String[] args) {
assert(getA() + "b" == "ab") : "Invalid";
System.out.println("Assertion successful!");
}
private static String getA()
{
return "a";
}
...我得到一个 AssertionError。为什么这个断言不返回真?
笔记:
- 测试时不要忘记在VM参数中添加“-ea”参数!(Eclipse:启用断言)