2011-01-17 29 views
5

タイプerasureはすべての一般情報を消去するはずです... これが当てはまる場合、GSONのようなライブラリはジェネリックを使用してどのタイプを逆シリアル化するかを決定しますか?Javaの消去タイプ

private Map<String,Date> tenordates; 

private Map<Date,Date> tenordates; 

は、その実行時に、一般的な情報を使用してそう何とか<Date,Date>

にデシリアライズされますので、これは<String,Date> どこにデシリアライズされます。

+2

が反映されている可能性があります。コードを確認していません。 –

+0

[getSimpleNameWithGenerics(クラス clazz)の可能な複製](http://stackoverflow.com/questions/4707042/getsimplenamewithgenericsclass-clazz) – bmargulies

答えて

5

タイプ消去は、すべてのタイプ情報を消去しません。クラス、フィールド、戻り値の型およびパラメータ定義からは削除されません。次の例のタイプ情報は保持されます。を介してアクセス可能です。与えられたTypeがそのクラスであるinstanceofであるかどうかをチェックし、キャストして型情報を取得できます。