ホームページ  >  記事  >  Java  >  Java でジェネリック メソッドは例外をスローできますか?

Java でジェネリック メソッドは例外をスローできますか?

WBOY
WBOYオリジナル
2024-05-03 13:24:01335ブラウズ

Java の汎用メソッドは例外をスローできますが、構文は通常のメソッドと同じです。 Compare メソッドで示されているように、オブジェクトが空であるか Comparable インターフェイスを実装していない場合、さまざまな種類のエラーを処理するために例外がスローされます。

泛型方法是否可以在 Java 中抛出异常?

Java でジェネリック メソッドが例外をスローする

Java では、ジェネリック メソッドが「通常のメソッドと同じ」などの例外をスローすることがあります。これにより、さまざまな種類のエラーが発生したときにさまざまな例外をスローできるジェネリック メソッドを作成できます。

構文

例外をスローするジェネリック メソッドの構文は、通常のメソッドの構文と同じです。

public <T> void myMethod(T arg) throws Exception {
    // ...
}

実用的なケース

2 つのオブジェクトを比較する次のメソッドを検討してください。

public static <T> int compare(T a, T b) {
    if (a == null || b == null) {
        throw new IllegalArgumentException("Arguments cannot be null");
    }
    if (!(a instanceof Comparable)) {
        throw new ClassCastException("Objects must implement Comparable");
    }
    return ((Comparable<T>) a).compareTo(b);
}

このメソッドは、Comparable## が実装されている限り、任意のタイプの 2 つのオブジェクトを比較するために使用できます。 # インターフェイスであり、null にすることはできません。いずれかの条件が満たされない場合、メソッドは例外をスローします:

try {
    int result = compare("hello", "world");
    System.out.println(result);
} catch (IllegalArgumentException | ClassCastException e) {
    System.err.println(e.getMessage());
}

出力:

-1

結論

汎用メソッドは Java 例外をスローできます。がスローされるため、さまざまなタイプのエラーを処理できる汎用メソッドを作成できます。

以上がJava でジェネリック メソッドは例外をスローできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。