【发布时间】:2014-10-09 04:54:02
【问题描述】:
假设我们有一个函数:
void doSomething(Class<?> clazz);
如果我想为 Foo 类调用它,我会这样称呼它:
doSomething(Foo.class);
如果我的类型是 Foo
我想问题是 Foo
这可能吗?
——更新——
我会解释更多。
我有一个类型化的 bean:
类 EventMessage
<T>{T 有效载荷;
字符串类型;}
这种类型的对象被转换为 Json 形式(字符串),然后放入 JMS 队列; 消费者需要将它从 String 中解构回原来的形式。 Json ObjectMapper 需要知道要转换为的类型。 假设我的 EventMessage 负载是 Offer 类型,那么我想要这样的东西:
EventMessage
offerEvent = jsonObjectMapper.readValue(jsonMsg, EventMessage .class)
除非没有EventMessage<Offer>.class这样的东西。
问题在于EventMessage 是一个类型化的类,因此如果没有有关负载类型的额外信息,Json 转换器将不知道如何解决它。
【问题讨论】:
-
简短回答:你不能。长答案:解决方法取决于您想要做什么。