有没有办法获取一个Class并确定它是否代表一个原始类型(是否有一个解决方案不需要专门枚举所有原始类型)?
注意:我见过this question。我问的基本上是相反的。我有班级,我想知道它是否是原始的。
答案 0 :(得分:25)
Class对象上有一个名为isPrimitive的方法。
答案 1 :(得分:7)
Class.isPrimitive()会告诉你答案。
答案 2 :(得分:1)
此方法还将检查它是否也是基本类型的包装:
/**
* Checks first whether it is primitive and then whether it's wrapper is a primitive wrapper. Returns true
* if either is true
*
* @param c
* @return whether it's a primitive type itself or it's a wrapper for a primitive type
*/
public static boolean isPrimitive(Class c) {
if (c.isPrimitive()) {
return true;
} else if (c == Byte.class
|| c == Short.class
|| c == Integer.class
|| c == Long.class
|| c == Float.class
|| c == Double.class
|| c == Boolean.class
|| c == Character.class) {
return true;
} else {
return false;
}