我想學習使用泛型的第一次,一個相當複雜的方式爲返回類型最佳實踐。我也使用Jackson 2進行反序列化。什麼是使用Java泛型和工廠模式
我在我的return語句每次鑄造。有人能告訴我這是錯的嗎?如果是這樣,有什麼更好的方法來做到這一點?
下面是一個簡單的例子類,演示了這種情況:
class ResourceFactory <T extends Resource>{
List<T> getResources(String path)
{
ResourcesResponse rgRes = new ObjectMapper()
.readValue(response.body().byteStream(), ResourcesResponse.class)
return (List<T>)rgRes.resources
}
}
UPDATE:
每一個評論,這裏是另一類機構是什麼樣的超簡化的例子。
class ResourceResponse {
List<Resource> resources
}
class ResourceGeneric extends Resource {
}
class ResourceTypeOne extends Resource {
public String typeOneOnlyProperty
}
class ResourceTypeTwo extends Resource {
public String typeTwoOnlyProperty
}
您可以分享「ResourcesResponse」和「Resource」的定義嗎? –
我已經添加了一些模擬。如果你想看傑克遜的註釋,我也可以嘲笑這些,但是傑克遜的反序列化沒有問題。我只是想確定在每個回報聲明中投出(列表)是否最好。 –
solvingJ
'ResourceResponse'應該是'ResourceResponse'。資源應該是'List '。你應該傳遞一個TypeReference >作爲參數。 –