Class是哪种Class ?
clazz.isPrimitive(); //是否primitive type //是否为primitive type的封装类?看看它在不在下面的map里(这个map节选自spring的ClassUtils.java) primitiveWrapperTypeMap.put(Boolean.class, boolean.class); primitiveWrapperTypeMap.put(Byte.class, byte.class); primitiveWrapperTypeMap.put(Character.class, char.class); primitiveWrapperTypeMap.put(Double.class, double.class); primitiveWrapperTypeMap.put(Float.class, float.class); primitiveWrapperTypeMap.put(Integer.class, int.class); primitiveWrapperTypeMap.put(Long.class, long.class); primitiveWrapperTypeMap.put(Short.class, short.class); clazz.isArray(); //是否为数组类型
拿到的是java.lang.reflect.Type类型,它是哪种Type ?
if (javaReflectType instanceof ParameterizedType); //是否为泛型 if (javaReflectType instanceof Class) //是否为类
是哪种泛型
ParameterizedType pt = (ParameterizedType) javaReflectType; Type rawType = pt.getRawType(); //尖括号前面的类型,如List<String>中的List //Collection<SomeClass> if (Collection.class.isAssignableFrom(rawClass)) { Type type = pt.getActualTypeArguments()[0]; //类集中的元素类型 } //Map<KeyClass, ValueClass> if (Map.class.isAssignableFrom(rawClass)) { Type keyType = pt.getActualTypeArguments()[0]; //Map中的key类型 Type valueType = pt.getActualTypeArguments()[1];//Map中的value类型 }