ジェネリックでタイプ消去のコンセプトを読んでいました。以下のコードを実行している間、私は混乱しました。ジェネリックの混乱でタイプ消去
型消去の概念を1としてpublic class CollectionsWild {
void Test(Collection<?> t){
System.out.println("Collection");
}
void Test(List<Integer> t){
System.out.println("List");
}
public static void main(String[] args) {
CollectionsWild o = new CollectionsWild();
o.Test(new ArrayList<String>());
}
}
、「List<Integer> t
は、」バイトコードの「リストT」に変換されます。だから、私のメソッドテストは、パラメータとしてCollectionを持っていると呼ばれる。 Listをパラメータとして呼び出す必要があります
ありがとうございましたが、あなたが与えたリンクは、私が求めていたものとは関係ありません。 –