2

现在有没有简单的方法可以做到这一点?假设我有一个可能是 Long、Float、Integer、Byte 等的对象,我如何从这个对象中获取其等效的原始类(Class)?

方法可以这样写

Class<?> getEquivalentPrimitiveType(Object obj)
{
}
4

1 回答 1

5

对应的原始类型是Long.TYPE

public static final Class<Long> TYPE

表示原始类型的 Class 实例long

如果你有一个“包装”类的实例,你可以通过反射得到对应的原语,像这样:

static <T> Class<T> getPrimitive(Class<T> wrapper)
    throws NoSuchFieldException, IllegalAccessException {
    return (Class<T>)wrapper.getDeclaredField("TYPE").get(null);
}

这是关于 ideone 的演示

于 2013-03-15T09:35:38.567 回答