2016-09-28 41 views
1

我希望創建一個泛型函數來接收類,然後用Gson數據返回它。 這是我需要暗示的代碼示例,您能否幫我解決這個問題?接收泛型類型

ClassType? dealWithClass (String st, Class cls) 
{ 
    Gson gson = new Gson(); 
    return gson.fromJson(st,cls.class); 
} 

MyClass1 mc1 = dealWithClass("some gson string",MyClass1.class) 
MyClass2 mc2 = dealWithClass("some second gson string",MyClass2.class) 

回答

3

簡單的使用泛型:

public <T> T dealWithClass (String st, Class<T> cls) 
{ 
    Gson gson = new Gson(); 
    return gson.fromJson(st,cls); 
} 
2

您需要使用generic method

就像類型聲明,方法聲明可以通用,也就是說,參數通過一個或多個類型參數

<T> T dealWithClass(String st, Class<T> clazz) { 
    Gson gson = new Gson(); 
    return gson.fromJson(st, clazz); 
} 
+2

你忘了'st'參數 – Antoniossss