[Javalist] Generikus típusok

Mariák Kálmán sirkalmi at kalmiesemese.hu
2014. Már. 18., K, 17:19:01 CET


Sziasztok!

Szoktam használni a generikus típusokat, de mikor valami komolyabbra 
akarom fogni, akkor mindig rájövök, hogy valójában nem értek semmit. :-)

Van egy metódusom ami Jackson mappert alkalmaz és generikus típusokkal 
van kezelve:

protected <T> T getObject(String path, Class<T> valueType) {
T object = null;
...
object = mapper.readValue(entity.getContent(), valueType);

return object;
}

Szépen működik. Ugyanezt szeretném megvalósítani, de listánál:

protected <T> List<T> getObjects(String path, Class<T> valueType) {
List<T> list = null;
...
list = mapper.readValue(entity.getContent(), new 
TypeReference<List<T>>() {});

return list;
}

Nem működik, mert minden esetben LinkedHashMap-et állít elő, nem pedig a 
megadottat.

Ha direkt kézzel beírom a kivánt típust, akkor működik:

protected <T> List<T> getObjects(String path, Class<T> valueType) {
List<T> list = null;
...
list = mapper.readValue(entity.getContent(), new 
TypeReference<List<Category>>() {});

return list;
}

Hogy szokás ezt megoldani?

Köszi a válaszokat!

Mariák Kálmán


További információk a(z) Javalist levelezőlistáról