2

私はこのコードを手に入れました

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に指定する方法について何か考えはありますか?ありがとうございました!。

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 に答える