如何在没有SuppressWarnings(“unchecked”)的情况下将someobject.getClass()强制转换为Class <object>?</object>

时间:2014-08-12 15:38:26

标签: java casting

我尝试使用JAXB使用一种方法序列化几个不同的对象:

简化代码:

public static void serialize(Object req) {
    QName qname = ...
    Class<Object> type = helper(req);
    Object obj = req;

    ...

    JAXBElement elem = new JAXBElement<Object>(qname, type, obj);

    ...
}

现在JAXB期望变量type的类型为Class<Object>(至少我认为是这样),所以我介绍了这个帮助方法:

private static Class<Object> helper(Object req) {
    return (Class<Object>) req.getClass(); // UNCHECKED CAST!
}

但是这最后一行代码产生了一个未经检查的强制警告。 我怎样才能做到对不对?

1 个答案:

答案 0 :(得分:0)

尝试使用以下

req.getClass().asSubclass(Object.class);