这个方法判断指定的 Class 对象是否表示一个基本类型或者void类型,为什么要把void放到这个方法中我也不太清楚,如果Class对象为表示八个基本类型和void则为true,否则false。所以以后我们可以直接使用这个方法来判断对象是不是基本类型。注意基本类型的包装类不属于基本类型,调用这个方法的返回值为false。
实例如下:
//基本类型判断
System.out.println( BigDecimal.class.isPrimitive());
System.out.println(int.class.isPrimitive());
System.out.println(void.class.isPrimitive());
System.out.println( TestBigdecimal.class.isPrimitive());
System.out.println(Class.class.isPrimitive());
运行结果:false
true
true
false
false
我们也来扩展一下其他的知识点。
(2)class类也提供了判断是不是数组类型方法isArray()。
(3)getName()返回此 Class对象表示的实体名称。
如果此类对象表示的引用类型不是数组类型,则返回该类的二进制名称
如果此类对象表示基本类型或void,则返回的名称是一个 String 字符串
如果此类对象表示一类数组,则名称的内部形式由元素类型的名称组成,其后一个或多个“[”字符表示数组的深度嵌套。
关于第三点中说的元素类型,列出来一张元素类型表:
元素类型
编码
boolean
Z
byte
B
char
C
class or interface
Lclassname;
double
D
float
F
int
I
long
J
short
S
实例如下:
//getName
long[] a2 = new long[] {1,2,3,4};
String[] a3= new String[] {"1","2","3","4"};
System.out.println(Integer.class.getName());
System.out.println(a1.getClass().getName());
System.out.println(a2.getClass().getName());
System.out.println(a3.getClass().getName());
System.out.println(int.class.getName());
System.out.println(String.class.getName());
List str =Arrays.asList( a3 );
System.out.println(str.getClass().getName());
System.out.println(str.getClass().isArray());
运行结果:
java.lang.Integer
[I
[J
[Ljava.lang.String;intjava.lang.String
java.util.Arrays$ArrayListfalse
(4)判断数组中元素类型方法 getComponentType()
getComponentType()方法返回表示数组的组件类型的Class,也就是说返回数组的每个元素的类型。如果此类不表示数组类,则此方法返回null。
实例如下:
//返回数组的元素类型
int[] a1 = new int[] {1,2,3,4};
System.out.println(a1.getClass().getComponentType());
System.out.println(a1.getClass());
System.out.println(int.class.getComponentType());
运行结果:int
class[Inull
上面的方法都是Class类中的方法,Class类里面的方法还有很多,后续我会把一一解析的。