ホームページ >Java >&#&チュートリアル >Java関数ジェネリックの境界と制約の詳細な説明
Java 関数ジェネリックを使用すると、さまざまなタイプのパラメータを受け入れ、さまざまなタイプの結果を返すジェネリック関数を定義できます。境界は、extends (サブクラス) と super (スーパークラス) を使用して指定されるパラメーター タイプのスコープを定義します。制約は、Number サブクラスや同等の型を要求するなど、動作をさらに制限します。関数 max の例では、型の境界と制約を使用して、パラメーターが比較可能であり、Integer や Double などの異なる型を受け入れられるようにしています。
Javaでは、関数ジェネリックを使用すると、さまざまなタイプのパラメータを受け入れ、さまざまなタイプの結果を返すことができるジェネリック関数を定義できます。型パラメーターを使用することにより、ジェネリック関数はコードの再利用性、型の安全性を強化し、コードの重複を減らすことができます。
Bounds: ジェネリック関数を宣言する場合、型パラメーターの境界を指定できます。境界は、関数が受け入れることを許可されるパラメーターの種類の範囲を定義します。最も一般的に使用される境界タイプは次のとおりです。
制約: 境界に加えて、制約を使用して関数ジェネリックの動作をさらに制限することもできます。制約を使用すると、型パラメータが特定の要件を確実に満たすようにすることができます。最も一般的に使用される制約は次のとおりです。
以下は、型境界と制約を使用するジェネリック関数の例です:
public static <T extends Number & Comparable<T>> T max(T a, T b) { if (a.compareTo(b) > 0) { return a; } else { return b; } }
この関数では、型パラメータ T
を定義します。これは Number
クラスの Comparable
インターフェイスを実装します。これらの境界と制約により、数値的に比較できる型のオブジェクトのみを関数に渡すことができるようになります。 T
,它必须是 Number
类的子类,并实现 Comparable
接口。此边界和约束条件确保了我们仅能将可以进行数值比较的类型对象传递给该函数。
我们可以这样使用此函数:
Integer maxValue = max(5, 10); Double maxValue = max(3.14, 2.71);
请注意,在这个例子中,我们使用了不同的类型(Integer
和 Double
Integer
と Double
) を使用しましたが、どちらも境界と境界を満たしていることに注意してください。関数が適切に動作するように関数に制約を課します。 🎜以上がJava関数ジェネリックの境界と制約の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。