Class Class.forName(String packageNameAndClassName)throws ClassNotFoundException;
根据完整的包名.类名获取对应的Class类对象
ClassNotFoundException 未找到指定类
Class 类对象.getClass();
通过类对象获取当前类对象对应的Class类对象
例如:
Person p =newPerson(); p.getClass()==> Person类对应Class对象
Class 类名.class;
通过类名获取当前类对应属性 Class对象
例如:
Person.class==> Person类对应Class对象。
package com.qfedu.a_reflect;/**
* Class类方法演示
*
* @author Anonymous
*
*/publicclassGetClassObject{publicstaticvoidmain(String[] args)throws ClassNotFoundException {/*
* Class Class.forName(String packageNameAndClassName)
* throws ClassNotFoundException;
*/
Class cls1= Class.forName("com.qfedu.a_reflect.Person");/*
* Class 类对象.getClass();
*/
Person person =newPerson();
Class cls2= person.getClass();/*
* Class 类名.class;
*/
Class cls3= Person.class;/*
* 不管是通过哪一种方式获取指定类的Class对象,都是同一个Class对象
* 因为当前Person类在当前程序中有且只占用一次代码区空间。
*/
System.out.println("cls1 == cls2 : "+(cls1 == cls2));
System.out.println("cls2 == cls3 : "+(cls2 == cls3));
System.out.println("cls3 == cls1 : "+(cls3 == cls1));}}