- 实例说明
java的数据类型分为两类:基础数据类型和引用数据类型。对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象。它提供了在运行时检查对象属性的方法,这些属性包括它的成员和类型信息。更重要的是Class对象是所有反射API的入口。
- 关键技术
通常有5种方式获得Class对象,详细说明如下:
- Object.getClass
- .class语法
- Class.forName()
- 包装类的TYPE域:每个原始类型和void都有包装类。
- 以Class为返回值的方法
/** * 演示各种获取Class对象的方法 */ public class ClassTest { @SuppressWarnings("unchecked") public static void main(String[] args) throws ClassNotFoundException { System.out.println("第一种方式:Object.getClass"); Class c1 = new Date().getClass(); System.out.println(c1); System.out.println("第二种方式:.class"); System.out.println(Boolean.class); System.out.println("第三种方式:Class.forName('class.getName()')"); Class c2 = Class.forName("java.lang.String"); System.out.println(c2.getName()); System.out.println("第四种方式:包装类的TYPE域"); Class c3 = Double.TYPE; System.out.println(c3.getName()); //获取void包装类 Class c4 = void.class; System.out.println(c4.getName()); } }