我收到了这段代码
private Object fooMethod(Node node, Class classOut)
JAXBElement<MessageAcknowledgementType> root = unmarshallerjaxObject.unmarshal(node, MessageAcknowledgementType.class);
由于我要用不同的类名调用fooMethod,我想从变量classOut中指定JAXBElement类的名称,我试过这个但它不起作用:
JAXBElement <classOut.getSimpleName()> root = unmarshallerjaxObject.unmarshal(node, classOut.getSimpleName()); //It doesn't work
有关如何在JAXBElement中指定类名的任何想法吗?谢谢!。
答案 0 :(得分:2)
最简单的事情是:
private Object fooMethod(Node node, Class<?> classOut) {
JAXBElement<?> root = unmarshallerjaxObject.unmarshal(node, classOut);
}
答案 1 :(得分: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);