douglarek
03/15/2017, 9:19 AMclass A<T> {
public <E> E get(Class<E> klass, String key) {
return (E) (new Object()); // just for demo
}
public static void main(String[] args) {
A a = new A<>();
a.get(List.class,"a");
}alband
03/15/2017, 9:44 AMalband
03/15/2017, 9:46 AMalband
03/15/2017, 9:46 AMdouglarek
03/15/2017, 9:47 AMdouglarek
03/15/2017, 9:48 AMAndreas Sinz
03/15/2017, 9:48 AMalband
03/15/2017, 9:48 AMdouglarek
03/15/2017, 9:49 AMget method, although A's generic type is <T>douglarek
03/15/2017, 9:50 AMalband
03/15/2017, 9:51 AMalband
03/15/2017, 9:51 AME super T.... but yeah this has nothing to do here, on kotlinlang slackdouglarek
03/15/2017, 9:52 AMa.get(List.class,"a"); will return java.lang.Object just not java.util.List when instances A as a raw typeAndreas Sinz
03/15/2017, 9:53 AMdouglarek
03/15/2017, 9:54 AMalband
03/15/2017, 9:55 AMdouglarek
03/15/2017, 9:59 AMpublic class Response<T> {
private Map<String, Object> data = new HashMap<>();
public <E> E getDataEntryAs(Class<E> type, String key) {
Object o = data.get(key);
if (o == null) {
return null;
}
ObjectMapper m = new ObjectMapper();
return m.convertValue(o, type);
}
}Andreas Sinz
03/15/2017, 10:00 AMdouglarek
03/15/2017, 10:03 AMResponse response = new Response();
response.getDataEntryAs(String.class,"");douglarek
03/15/2017, 10:03 AMresponse.getDataEntryAs(String.class,""); return java.lang.Objectdouglarek
03/15/2017, 10:04 AMResponse<String> response = new Response<>();
response.getDataEntryAs(String.class,"");douglarek
03/15/2017, 10:05 AMresponse.getDataEntryAs(String.class,""); will return java.lang.StringAndreas Sinz
03/15/2017, 10:10 AMdouglarek
03/15/2017, 10:14 AMget it just use <E>douglarek
03/15/2017, 10:14 AMAndreas Sinz
03/15/2017, 10:52 AMdouglarek
03/15/2017, 10:53 AMAndreas Sinz
03/15/2017, 9:21 PM