现在有没有简单的方法可以做到这一点?假设我有一个可能是 Long、Float、Integer、Byte 等的对象,我如何从这个对象中获取其等效的原始类(Class)?
方法可以这样写
Class<?> getEquivalentPrimitiveType(Object obj)
{
}
现在有没有简单的方法可以做到这一点?假设我有一个可能是 Long、Float、Integer、Byte 等的对象,我如何从这个对象中获取其等效的原始类(Class)?
方法可以这样写
Class<?> getEquivalentPrimitiveType(Object obj)
{
}
对应的原始类型是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);
}