簡體   English   中英

Java中的類型擦除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM