java--反射九个预定义Class对象(二)

网友投稿 842 2022-05-30

java--反射(二)

九个预定义Class对象

基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void通过class属性也表示为 Class 对象;

Class类中boolean isPrimitive() :判定指定的 Class 对象是否表示一个基本类型。

包装类和Void类的静态TYPE字段;

Integer.TYPE == int.class ; //

Integer.class == int.class; //

数组类型的Class实例对象:

Class clz = String[].class;

数组的Class对象如何比较是否相等? 数组的维数和数组的类型;

Class类中 boolean isArray() :判定此 Class 对象是否表示一个数组类型。

9个预定义对象实例

package reflect;

public class PreClassInstanceDemo {

public static void main(String[] args) {

//获得一个数组的Class对象

/*

* 具有相同元素类型和维数的数组都共享同一个 Class 对象

*

* 和数组的元素个数和元素的值,元素的顺序 无关

*/

int[] arr = {1,2};

Class clz1= arr.getClass();

int[] arr2 = {1,2,3,4};

Class clz2= arr2.getClass();

System.out.println(clz1 == clz2);//true

/**

* 得到数组的Class对象的另外一种方式:

*/

Class clz3 = int[].class;

System.out.println(clz1 == clz3);

System.out.println(clz3.toString());

//=========================================

/**

* 基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。

他们都对应这 class属性;

java--反射九个预定义Class对象(二)

他们的包转类都有TYPE常量; 得到的是他们基本类型的字节码;

数据类型(引用、基本)都有class属性;

*/

System.out.println("int.class == int.class"+ (int.class == int.class));

Class v = void.class;

System.out.println();

//int 和 Integer 表示不同的数据类型

System.out.println(Void.TYPE);

System.out.println("--------------");

System.out.println(Integer.class);

System.out.println(int.class);

System.out.println(Integer.class == int.class);//false

System.out.println(Integer.TYPE);

System.out.println(Integer.TYPE == Integer.class);//false

System.out.println(Integer.TYPE == int.class);//true

}

public void show(int i){

}

public void show(Integer i){

}

}

Java 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GaussDB(DWS)问题定位常用SQL
下一篇:Google Earth Engine ——非洲土壤表面的实际蒸发量数据集
相关文章