このコード スニペットは、K&B 模擬試験から取得しています。
public class Later {
public static void main(String[] args) {
boolean earlyExit = new Later().test1(args);
if (earlyExit) assert false; // LINE 5
new Later().test2(args);
}
boolean test1(String[] a) {
if (a.length == 0) return false;
return true;
}
private void test2(String[] a) {
if (a.length == 2) assert false; // LINE 13
}
}
K&B の回答では、LINE-5 と LINE-13 はアサーションの不適切な使用であると述べています。理由を知りたいです。これは、K&B からのアサーションのトピックを読んだ後の私の観察です。
1. LINE 5 は、コマンド ライン引数の検証にアサーションを使用しているため不適切であることは理解しています。コマンド ライン引数の検証にアサーションを使用しないでください。
2.回答では、LINE 13もアサーションの不適切な使用であると述べています。アサーションのグッド プラクティスでは、アサーションを使用してプライベート メソッドの引数を検証できると述べています。私の質問は、LINE 13 がアサーションの不適切な使用である理由です。
これに関する洞察は役に立ちます。