ホームページ >Java >&#&チュートリアル >Java関数ジェネリックの上限と下限は何ですか?使い方?
Java 関数ジェネリックでは、上限と下限を設定できます。上限 (拡張) は、関数によって受け入れられるか返されるデータ型が、指定された型のサブタイプである必要があることを指定します (7bac7e57b1a28a76cdacdabd991c2663 など)。下限 (スーパー) は、関数によって受け入れられるか返されるデータ型が、指定された型のスーパー型である必要があることを指定します (
Java 関数ジェネリックの上限と下限
関数ジェネリックは、関数が処理できるデータ型をコンパイル時に指定できる強力なメカニズムです。 Java のジェネリックスでは、関数によって受け入れられるデータ型または返されるデータ型を制限するために上限と下限を宣言できます。
上限
上限は、関数が受け入れまたは返すことができるデータ型が、指定された型のサブタイプである必要があることを指定します。 extends キーワードを使用して指定します。例:
public <T extends Number> void printNumber(T number) { System.out.println(number); }
この関数は、Number の型またはそのサブクラス (Integer、Double、Float など) のみを受け入れることができます。
下限 (下限)
下限は、関数が受け入れまたは返すことができるデータ型が、指定された型のスーパータイプである必要があることを指定します。 superキーワードで指定します。例:
public <T super Number> void sumNumbers(List<T> numbers) { double sum = 0; for (T number : numbers) { sum += number.doubleValue(); } }
この関数は、数値またはそのスーパータイプのリスト (Lista87fdacec66f0909fc0757c19f2d2b1d や Listc0f559cc8d56b43654fcbe4aa9df7b4a など) を受け入れることができます。
実際的なケース
2 つの数値を比較する関数があるとします:
public static <T extends Comparable<T>> int compare(T obj1, T obj2) { return obj1.compareTo(obj2); }
この関数を使用して、Comparable インターフェイスを実装する任意の型を比較できます。たとえば:
int result = compare(10, 20); // result 为 -1
メソッドの使用
ジェネリックスの使用上限と下限を指定するときは、次の点に注意してください:
以上がJava関数ジェネリックの上限と下限は何ですか?使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。