0

私はこのようなものを探しています:

assertSafe(Integer.parseInt(val))

出来ますか?

ありがとう!

4

2 に答える 2

2

assertSafe で例外をキャッチして失敗させたいと思いませんか? 残念ながら、これは Java では不可能です (少なくとも現在は)。一般に、すべてのパラメーターは、メソッドに渡される前に常に評価する必要があります。

ただし、ヘルパー メソッドを作成することもできます。

public static void assertSafeInt(String val) {
    try {
        Integer.parseInt(val);
    } catch (NumberFormatException e) {
        throw new AssertionError(val + " is not an int");
    }
}

使用法:

assertSafeInt(val);

あなたが望むほど一般的ではありませんか?ラムダを使用したJava 8は少し役立つかもしれませんが、構文があなたが望むほどきれいになるとは思いません.

Scala には「名前による呼び出し」と呼ばれるものがあり、実際にはコード ブロックを関数として渡します。Scala で assertSafe を作成するのは簡単です。

于 2013-08-02T05:45:57.283 に答える
1

たとえば、JSON 文字列から値を抽出するときの型チェック - なぜすぐに利用できないのだろうかと思います。

Scanner を使用する場合は、hasNextInt()、hasNextDouble()、または hasNext() => String でこれをサポートします。

通常、期待するタイプはわかっていますが、そうでない場合は、読んだときにこれを解析します。として欲しい文字列を読み取ることは避けますがint、これは非効率的です。;)

于 2013-08-02T05:43:40.083 に答える