有没有办法在java中使用变量作为Generic类型?

时间:2015-10-01 23:47:27

标签: java generics reflection resttemplate

无论如何都要做这样的事情:

APPDIR=C:\WHAT

提前致谢

=============================================== =========================

我会尝试更好地解释我需要什么,希望我没有做任何荒谬的事情

我使用restTemplate.getForObject从Web服务获取数据。但是他们使用自定义MediaType,因此我实现了一个CustomMessageConverter,以便restTemplate了解MediaType并将其转换为我的数据对象。

问题是这个数据对象使用泛型。从此Web服务返回的所有对象都有一些公共字段和一些特定字段,因此,要映射它而不重复我创建的GeneralItem代码,每个资源都从Item扩展。

所以,我的MessageConverter是这样创建的:

Type type = new TypeToken<MyHappyClass>(){}.getType();
List<type> = new LinkedList<type>();

我的readInternal是这样的:

public class MyMessageConverter<T extends Item> extends AbstractHttpMessageConverter<T>

但是这不起作用,因为我需要clazz类型而不是通配符(*)来让gson解析它。我走错路了吗?

1 个答案:

答案 0 :(得分:0)

在java中,你不能拥有&#34;泛型&#34;类型。虽然,在编程时,您可以设置您的程序,以便它可以使用层次结构,您的主要父类可以是您的整体&#34;泛型&#34;类型对象。从那里你可以拥有将覆盖父对象的子类,&#34;泛型&#34;,因此是面向对象编程的基础。