ホームページ  >  記事  >  Java  >  Java関数ジェネリックの上限と下限は何ですか?使い方?

Java関数ジェネリックの上限と下限は何ですか?使い方?

王林
王林オリジナル
2024-04-26 11:45:02641ブラウズ

Java 関数ジェネリックでは、上限と下限を設定できます。上限 (拡張) は、関数によって受け入れられるか返されるデータ型が、指定された型のサブタイプである必要があることを指定します (7bac7e57b1a28a76cdacdabd991c2663 など)。下限 (スーパー) は、関数によって受け入れられるか返されるデータ型が、指定された型のスーパー型である必要があることを指定します ( など)。ジェネリックを使用すると、コードの再利用性とセキュリティが向上します。

Java 函数泛型的上限和下限是什么?如何使用?

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 サイトの他の関連記事を参照してください。

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