質問1:
ジェネリックとは何ですか?
回答:
Baiduはインターネットで標準的な説明をしています。
Java Genericsは、JDK 5で導入された新機能です
。Genericsは、コンパイル時の型安全性検出メカニズムを提供します。これにより、プログラマーはコンパイル時に不正な型を検出できます。
ジェネリックの本質はパラメーター化された型です。つまり、操作されるデータ型はパラメーターとして指定されます。
Head first Javaブックの単語と組み合わせて、お互いを参照して理解しました。
ジェネリックスは型の安全性をチェックする方法を提供します。それは猫をマウスのコレクションに入れるという不合理な状況を避けるためです。そして、ジェネリックで遭遇するほとんどのプログラムは、コレクションの処理に関連しています。
ジェネリックスについて知っておくべき3つのこと:
- ジェネリッククラスのインスタンスを作成するには、
許可するものを指定する必要があります
new ArrayList<Song>();//Song必须指定
- ジェネリック型の変数を宣言して指定する
List<Song> songList = new ArrayList<Song>();
- ジェネリック型のメソッドを呼び出す
void foo(List<Song> list)
x.foo(songList);
質問2:
ジェネリックの使用方法
- ジェネリッククラスを使用する
public class Arraylist<E> extends AbstractList<E> implements List<E>{
public boolean add(E o){ //E代表集合的元素类型
//更多代码
}
}
- クラス宣言で定義された型パラメーターを使用する
public class ArrayList<E> extends AbtractList<E>...{
public boolean add(E o)//只能使用E
}
- クラス宣言で定義されていない型パラメーターを使用する
public <T extends Animal> void takeThing(ArrayList<T> list)
//<T extends Animal> 是方法声明的一部分,表示动物或者动物的子类的ArrayList是合法的
注:一般的な観点から、extendsはextendsまたはimplementの略です