2016-06-28 20 views
1

タイプ消去を適用した後、次のメソッドはどのように見えますか?Javaジェネリック - タイプ消去後のメソッド

static<T> void InsertAt0(List<T> mylist, T element) { 
    mylist.add(0, element); 
} 

TObjectで置き換えられますか?またはタイプ消去はジェネリッククラスについてのみですか?

答えて

4

だけ<T>秒のすべてを削除し、オブジェクトを任意のTを置き換える:上記マイリスト

static void InsertAt0(List mylist, Object element) { 
    mylist.add(0, element); 
} 

注は、そのraw type同等に消去された:List<T>はちょうどListになりました。

あなたはT行きのワイルドカードを指定した場合は、そのバインドの代わりに、オブジェクトとTに代わる、<T extends Number>のように、そして:

static void InsertAt0(List mylist, Number element) { 
            ^^^^^^ 
+0

だけ追加するには、通知リストは消去され、一覧になっています。このリンクを見てくださいOP:https://en.wikipedia.org/wiki/Generics_in_Java#Problems_with_type_erasure – angryip

+1

@angryip私はそれをもっと明示します、ありがとう! – yshavit

関連する問題