0

Java 7 以降、次のコードが可能です。

    try{
        ...
    }
    catch(FileNotFoundException | SomeOtherException e){
        e.printStackTrace();
    }

ただし、メソッドで構文をエミュレートすることは次のとおりではありません。

    public int test(int |double d){
        ...
    }

代わりに、これを行う必要があります

    public int test(int d){
        ...
    }
    public int test(double d){
        ...
    }

またはこれ:

    public class Foo<E>{
        ...
        public int test(E something){
            ...
        }
    }

catch ブロックのようなメソッドでもっと単純なことをできないのはなぜですか? catch ブロックの違いは何ですか (例外をキャッチすることと、それがブロックであるという事実以外に)?

ご協力いただきありがとうございます。

4

3 に答える 3

2
try{
        ...
    }
    catch(FileNotFoundException | IOException e){
        e.printStackTrace();
    }

FileNotFoundExceptionのサブクラスであるため、これも実行できませんIOException。マルチキャッチステートメントの代替は、サブクラス化によって関連付けることはできません

于 2013-10-19T19:40:31.930 に答える