[英]Type Erasure in Java
類型擦除應該擦除所有泛型信息...如果是這種情況,那么像GSON這樣的庫如何使用泛型來確定要反序列化為哪種類型?
例如
private Map<String,Date> tenordates;
這將反序列化為<String,Date>
,其中
private Map<Date,Date> tenordates;
將反序列化為<Date,Date>
因此以某種方式在運行時使用通用信息。
類型擦除不會擦除所有類型信息。 它不會從類,字段,返回類型和參數定義中將其刪除。 保留以下示例中的類型信息:
public class Foo extends List<Bar> { ..}
private List<Foo> foos;
public List<Foo> getFoos() {..}
public void doSomething(List<Foo> foos) {..}
這可以通過反射實現java.lang.reflect.ParameterizedType
。 您可以檢查給定的Type
是否是該類的instanceof
,將其強制轉換為該類並獲取類型信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.