[Java][JSON] genericなクラスの配列となっているJSONをJacksonを使ってLISTへデシリアライズする方法


genericなクラスの場合は、下記にあるTypeReferenceを使う方法ではCastExceptionが発生してしまいました。

このようにすればよいみたいです。

public static <T extends Object> List<T> deserialize(final String jsonStr, final Class<T> clazz) {
  final ObjectMapper mapper = new ObjectMapper();
  final CollectionType jt
    = mapper.getTypeFactory().constructCollectionType(List.class, clazz);

  return (List<T>) mapper.readValue(jsonStr, jt);
}

JacksonのFAQに記載ありました
http://wiki.fasterxml.com/JacksonFAQ#Deserializing_Generic_types