我正在爲JSON Jackson pojo序列化/反序列化編寫包裝器。 所以我試圖寫一個通用的方法,將返回一般反序列化的對象。通用方法中的通用參數返回值
我覺得代碼可以解釋這更好:
public <K,V, M extends Map<K, V>> M readMap(String path, Class<M> mapType, Class<K> keyClass, Class<V> valueClass) throws JsonParseException, JsonMappingException, IOException
{
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(new File(path), mapper.getTypeFactory().constructMapType(mapType, keyClass, valueClass));
}
代碼
HashMap<String, Double> weightMap;
JSONParsedFileHandler reader = new JSONParsedFileHandler();
weightMap = reader.readMap("weights.model", HashMap.class, String.class, Double.class);
可正常工作,但是,我得到一個類型安全警示:
Type safety: The expression of type HashMap needs unchecked conversion to conform to HashMap<String,Double>
我認爲這意味着返回的類型與預期一樣,除非它沒有按照我編碼進行參數化。
有沒有人有任何想法?
感謝您的回答... –
有沒有辦法避免醜陋@SuppressWarning標籤? –
我不這麼認爲。雖然比警告更漂亮,對吧? – Dave