簡體   English   中英

我要通用班級的“班級 <T> ”和“類別變量”

[英]I want Generic class's “Class<T>” with “Class variable”

我想獲取JsonDeserialize的通用類的類型變量。

Class Data<T> {
  private T data;
}

Class DataType {
  private String dummy;
}


Class dataTypeClass = DataType.class;


// I want get this.
Class dataClass = Data<dataTypeClass>.class;


我已經嘗試過這種方式,它不起作用。

我可以得到Data.class嗎?

如果您使用傑克遜作為圖書館。 您可以只使用TypeReference

TypeReference<Data<DataType>> r = new TypeReference<Data<DataType>>() {};
...
Data<DataType> data = objectMapper.readValue(json, r);

此代碼將創建一個新的TypeReference匿名子類, TypeReference子類使用<Data<DataType>>參數化。 此類在內部使用“ hackaround”來獲取通用參數,然后Jackson將其拾取以反序列化JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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