2

我得到了这个代码

private Object fooMethod(Node node, Class classOut)
  JAXBElement<MessageAcknowledgementType> root = unmarshallerjaxObject.unmarshal(node, MessageAcknowledgementType.class);

因为我要用不同的类名调用 fooMethod,所以我想在 JAXBElement 中指定变量 classOut 中的类名,我已经尝试过了,但它不起作用:

JAXBElement <classOut.getSimpleName()> root = unmarshallerjaxObject.unmarshal(node, classOut.getSimpleName()); //It doesn't work

关于如何在 JAXBElement 中指定类名的任何想法?谢谢!。

4

2 回答 2

2

最简单的事情是:

private Object fooMethod(Node node, Class<?> classOut) {
    JAXBElement<?> root = unmarshallerjaxObject.unmarshal(node, classOut);
}
于 2012-07-19T13:19:49.293 回答
1

这个怎么样:

Object obj = fooMethod(node, classout);

定义另一种方法,将其转换为适合您的类型:

private <T> JAXBElement<T> getCast(Class<T> clazz, Object obj){
    return (JAXBElement<T>)obj;
}

     JAXBElement<Member> jaxbElement = getCast(SomeClass.class, obj);
于 2012-07-19T11:42:57.473 回答