现在有一个简单的方法吗?假设我有一个可以是Long,Float,Integer,Byte等的Object,如何从这个对象中获得它的等价原始类(Class)?
可以像这样编写一个方法
Class<?> getEquivalentPrimitiveType(Object obj)
{
}
答案 0 :(得分:5)
相应的基元类型为Long.TYPE
:
public static final Class<Long> TYPE
表示基本类型
long
的类实例。
如果你有一个“包装器”类的实例,你可以通过反射获得相应的原语,如下所示:
static <T> Class<T> getPrimitive(Class<T> wrapper)
throws NoSuchFieldException, IllegalAccessException {
return (Class<T>)wrapper.getDeclaredField("TYPE").get(null);
}