反射,主要是指通过类加载,动态的访问,检测和修改类本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改所描述行为的状态和相关的语义
反射操作的核心概念“一切的操作都将使用Object完成。类、数组的引用都可以使用Object进行接受”
反射方式:
获取目标类的Class对象→得到类的完整信息→取得实例化的对象
实例化Class类创建演示
package ClassTest;
/**
* Class类实例化对象的三种方法
* 方法一:forName(类的完整路径),返回class对象
* 方法二:类.class,返回Class对象
* 方法三:类对象.class()对象,返回类对象对应的类的Class对象
*/
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* 实例化Class类,及演示方法使用
*
* @author Administrator
*
*/
public class ClassDome {
public static void main(String[] args) {
Class<?> cl = null;
/*
* 使用class方法的静态方法forName()指定路径实例化class对象,抛出异常
*/
try {
cl = Class.forName("java.lang.Integer");
System.out.println("cl: " + cl);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
* 使用类.class常见Class实例
*/
Class<Integer> cl1 = Integer.class;
System.out.println("cl1: " + cl1);
/*
* 使用实例对象实例化Class对象,调用getClass方法
*/
Class<Integer> cl2 = new Integer(0).getClass();
System.out.println("cl2: " + cl2);
}
}