(どのように)それはJavaの三項演算子文で例外をキャッチすることは可能でしょうか?

workerjoe:

私は、私は完全には理解していないことをいくつかのレガシーコードを再フォーマットし、その内の2つのフォーマット機能の一つの出力に条件付きアサイン変数は、例外そうのようなキャッチを使用して、いくつかの変数割り当てがありますよ。

String myString;
try {
    myString= foo(x);
} catch (Exception e) {
    myString= bar(x);
}

これは、例外処理の乱用のように思えるし、とにかくそれが変数割り当てのロットの繰り返し定型コードの多くを示します。掘り下げるなしでfoo例外が発生する可能性があります条件を特定するために、私は、三項演算子式を使用して、これを簡略化することができますか?このようなIEの何か:

String myString = foo(x) ? foo(x) : bar(x)

しかしによってスローされる可能性がある例外をキャッチfoo(x)このワンライナーでこれを行う方法はありますか?ない場合は、2つの割り当ての間で選択が可能例外に基づいていることをよりよく1行の式はありますか?私は、Java 8を使用しています。

ベルンハルト・ヨセフス:

手ぬぐいの答えはすでに明らかです。ただ、しかし、あなたの文についてのビットを追加したいです:

それは、変数割り当てのロットの繰り返し定型コードの多くのです。

あなたが繰り返し変数を割り当てたくない場合は、リターンに新しいメソッドを作成することができString、次のように値:

String myString = assign(x);

String assign(String x) {
    try {
        return foo(x);
    } catch (Exception e) {
        return bar(x);
    }
}

あなただけの、上記の方法で一度変数を割り当てる必要があります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223649&siteId=1