Java ジェネリックには主に、「ジェネリック クラスの定義」、「ジェネリック インターフェイスの定義」、「ジェネリック メソッドの定義」、「ジェネリック クラスまたはインターフェイスのインスタンス化」、「ワイルドカードの使用」、および「ジェネリックの使用」が含まれます。型修飾": 1. ジェネリック クラスを定義し、
を使用して型パラメータを表します。 2. ジェネリック インターフェイスを定義し、 を使用して型パラメータを表します。 3. ジェネリック メソッドを定義し、 を使用します。型パラメータを表すため; 4. ジェネリック クラスまたはインターフェイスをインスタンス化するときは、特定の型パラメータを指定します; 5. ワイルドカードを使用して、特定のジェネリック型のサブタイプまたはスーパータイプを表します。
Java ジェネリックは主に次の方法で使用されます。
ジェネリック クラスを定義できます。型パラメータを示すには
public class MyList<T> { private T[] array; public MyList(T[] array) { this.array = array; } public T get(int index) { return array[index]; } }
ジェネリック インターフェイスを定義できます。
public interface MyInterface<T> { T doSomething(); }
ジェネリック メソッドを定義できます。型を表すには
public <T> T doSomething(T param) { // ... }
ジェネリック クラスまたはインターフェイスをインスタンス化するときは、次のような特定の型パラメーターを指定する必要があります。
MyList<String> list = new MyList<>(new String[]{"a", "b", "c"});
ワイルドカードを使用して、?、? extends T、? super T など、特定のジェネリック型のサブタイプまたはスーパータイプを表すことができます。例:
MyList<? extends Number> list1 = new MyList<>(new Integer[]{1, 2, 3}); MyList<? super Integer> list2 = new MyList<>(new Number[]{1.0, 2.0, 3.0});
このうち、list1 は Number のサブタイプである任意の型 (Integer、Float など) を要素として受け入れることができ、list2 は Integer のスーパータイプである任意の型 (Number など) を受け入れることができます。 、オブジェクトなど)を要素として使用します。
汎用修飾を使用して、extends や super を含む型パラメータの範囲を制限できます。例:
public <T extends Number> void doSomething(T param) { // ... }
Among
以上がJava ジェネリックスの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。