Java 贾克斯贝伦<;T>;将声明的类型T作为参数来处理任何类

Java 贾克斯贝伦<;T>;将声明的类型T作为参数来处理任何类,java,jaxb,classname,Java,Jaxb,Classname,我有这个密码 private Object fooMethod(Node node, Class classOut) JAXBElement<MessageAcknowledgementType> root = unmarshallerjaxObject.unmarshal(node, MessageAcknowledgementType.class); private对象方法(节点,类classOut) JAXBElement root=unmarshallerjaxObje

我有这个密码

private Object fooMethod(Node node, Class classOut)
  JAXBElement<MessageAcknowledgementType> root = unmarshallerjaxObject.unmarshal(node, MessageAcknowledgementType.class);
private对象方法(节点,类classOut)
JAXBElement root=unmarshallerjaxObject.unmarshal(节点,MessageAcknowledgementType.class);
因为我要用不同的类名调用fooMethod,所以我想在JAXBElement中指定变量classOut中的类名,我尝试过这个方法,但没有成功:

JAXBElement <classOut.getSimpleName()> root = unmarshallerjaxObject.unmarshal(node, classOut.getSimpleName()); //It doesn't work
JAXBElement root=unmarshallerjaxObject.unmarshal(节点,classOut.getSimpleName())//它不起作用
你知道如何在JAXBElement中指定类名吗?。谢谢你

这个怎么样:

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);
private JAXBElement getCast(类clazz,对象obj){
返回(JAXBELENT)对象;
}
JAXBElement JAXBElement=getCast(SomeClass.class,obj);
最简单的事情是:

private Object fooMethod(Node node, Class<?> classOut) {
    JAXBElement<?> root = unmarshallerjaxObject.unmarshal(node, classOut);
}
private对象方法(节点,类classOut){
JAXBElement root=unmarshallerjaxObject.unmarshal(节点,classOut);
}

什么作用
fooMethod(Class)
?fooMethod(Class)正在对一个对象进行解组,我仍然很难理解它的作用。有没有可能在不泄露商业秘密的情况下发布一些代码?嗨,鲍里斯,没问题,我添加了更多的代码,现在我希望我想做的事情已经很清楚了。我只想让解组与任何不同的类一起工作Hi Biju,非常感谢你的回答。我认为我无法更改该方法的返回类型,因为它已被其他人使用。我添加了更多的代码,可能有助于理解我的问题。谢谢他想从你现有的方法中调用新的方法。这是一个非常优雅的解决方案,我知道必须有一个简单的方法,谢谢汤姆!。