Java の汎用メソッドは例外をスローできますが、構文は通常のメソッドと同じです。 Compare メソッドで示されているように、オブジェクトが空であるか Comparable インターフェイスを実装していない場合、さまざまな種類のエラーを処理するために例外がスローされます。
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 サイトの他の関連記事を参照してください。