#T は型を表します。
クラスに追加:class SuperClass<A>{}メソッドに追加:
public <T>void fromArrayToCollection(T[] a, Collection<T> c){}(無料の学習ビデオ チュートリアルの共有:
java ビデオ チュートリアル)
メソッドの 8742468051c85b06f0a0af9e3e506b5c は、括弧内でジェネリック パラメーターが使用されていることを意味します。ジェネリックがクラスで渡される場合、ここで渡す必要はありません。呼び出し側の型でジェネリック パラメーターが提供されます。ジェネリック型は、クラスで渡されるジェネリック型と一貫性があります。class People<T>{ public void show(T a) { } }T extends T2 は、渡されたパラメータが T2 または T2 のサブタイプであることを意味します。
? はワイルドカード文字であり、すべてのタイプを指します。
は通常、参照変数を定義するために使用されます。この利点は、以下に示すように、sup 参照変数を定義すると複数のオブジェクトを指すことができることです。SuperClass<?> sup = new SuperClass<String>("lisi"); sup = new SuperClass<People>(new People()); sup = new SuperClass<Animal>(new Animal());? を使用せず、固定型を使用する場合:
SuperClass<String> sup1 = new SuperClass<String>("lisi"); SuperClass<People> sup2 = new SuperClass<People>("lisi"); SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");これは ? ワイルドカードの利点です。 おすすめの関連記事とチュートリアル:
以上がJavaジェネリックにおけるTと?の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。