如何从java中的对象获取运行时类型

时间:2015-05-14 20:33:23

标签: java jaxb marshalling

我有这段代码:

cplx = std::polar(1.0f, /*...*/);

我希望它更灵活。我需要参数类型为Object,但我不知道如何更改此行:

的JAXBElement<的 what_do_I_put_here > jaxb = new JAXBElement< what_do_I_put_here >(新的QName(“uri”,“local”),Integer.class,param);

我希望它使用 param

中存储的类型的运行时类
public void doSomething(Integer param){
.
.
.
  JAXBElement<Integer> jaxb = new JAXBElement<Integer>
                                    (new QName("uri","local"),Integer.class, param);
.
.
.
}

1 个答案:

答案 0 :(得分:1)

不完全确定(目前无法访问IDE)但不是

public <T extends Object> void doSomething(T param) {
    .
    .
    JAXBElement<T> jaxb = new JAXBElement<T>(new QName("uri", "local"), (Class<T>) param.getClass(), param);
    .
    .
}