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 が発生します。このアサーションが true を返さないのはなぜですか?
ノート:
- テストするときは、VM 引数に「-ea」パラメータを追加することを忘れないでください。( Eclipse: アサーションを有効にする)