ジェネリック クラスとインターフェイスの違いは、ジェネリック クラスはオブジェクトを作成し、データ メンバーを宣言し、拡張可能なクラスであるのに対し、ジェネリック インターフェイスはメソッドを宣言し、データ メンバーを持たず、インターフェイスの拡張のみができることです。それらの関係: どちらを使用しても、複数の型で動作するコードを作成し、型の安全性をチェックできます。
Java におけるジェネリック クラスとジェネリック インターフェイスの違いと関係
ジェネリック クラス
ジェネリック クラスを使用すると、型パラメーターを持つクラスを作成して、さまざまな種類のデータを操作できるようになります。ジェネリック クラスは、クラス名に山かっこ <>
と型パラメータを続けて宣言します。例:
class MyGenericClass<T> { private T value; // ... 省略其他代码 }
ジェネリック クラスは、非ジェネリック クラスと同様に、任意の型で使用できます。ただし、ジェネリック クラスはコンパイル時に型パラメーターの型安全性をチェックします。
ジェネリック インターフェイス
ジェネリック インターフェイスはジェネリック クラスに似ていますが、クラスではなくインターフェイスを宣言します。ジェネリック インターフェイスを使用すると、さまざまな種類のデータで使用できる型パラメーターを備えたインターフェイスを作成できます。汎用インターフェイスは、インターフェイス名に山かっこ <>
と型パラメータを続けて宣言します。例:
interface MyGenericInterface<T> { T getValue(); void setValue(T value); }
ジェネリック インターフェイスは、非ジェネリック インターフェイスと同様に、任意の型で使用できます。ただし、ジェネリック インターフェイスは、コンパイル時に型パラメーターの型安全性もチェックします。
違い
ジェネリック クラスとジェネリック インターフェイスの主な違いは次のとおりです。
連絡先
ジェネリック クラスとジェネリック インターフェイスには次の共通点があります。
実用的なケース
次に、ジェネリック クラスとジェネリック インターフェイスの使用例を示します。
public class Main { public static <T> void printList(List<T> list) { for (T item : list) { System.out.println(item); } } public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("Hello"); list1.add("World"); printList(list1); } }
この例では、 # #printList メソッドは、あらゆるタイプのリストで使用できる汎用メソッドです。メソッドの型パラメータ
T を使用すると、メソッドは任意の型の要素を含むリストを受け入れることができます。型パラメーターの型安全性チェックにより、メソッドはリストでのみ渡すことができ、他の型のコレクションでは渡すことができません。
以上がJava におけるジェネリック クラスとジェネリック インターフェイスの違いと関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。