0

assert stmt を使用して、値が 1 より大きいかどうかを確認しようとしていますが、期待どおりに機能していません。

public class asserttest {
    static void methoda(int i){
        assert (i > 1);
        System.out.println("This is methoda");
    }
    public static void main(String[] args){
        methoda(-1);
    }
}

出力: これはメソッドです

期待される出力:- assertionerror

アサーションを有効にすることで修正できました。

4

2 に答える 2

2

私の推測では、アサーションがデフォルトで有効になっていないことに混乱していると思います。-enableassertionsコマンド ライン オプションを使用します。

java -enableassertions asserttest

アサーションを特定のパッケージに制限し、使用を無効にするパッケージを指定することもできます-disableassertions

個人的には、パラメーター値を無条件に検証することを好みます。これは、まさにこのためです。コードをテストで「セーフ」モードで実行するという考えは好きではありませんが、本番環境では安全性をオフにして解放します。シートベルトを着用して運転することを学ぶようなものですが、保護なしで F1 レースに参加するようなものです...

于 2013-09-18T14:25:00.480 に答える