今天学了反射,但对反射没听懂.不明白反射到底是做什么用的?应该怎样理解反射?
/*
* 反射:就是指通过字节码文件,去使用构造方法,成员变量,成员方法。
*
* 你想使用这些内容,那么首先要做的事情,就是你能够获取到字节码文件对象。
* 如何获取Class的对象呢?
* A:使用Object类的getClass()方法。
* B:使用数据类型.class这个静态的成员变量。
* C:使用的是Class类的forName()静态方法。
* public static Class<?> forName(String className)
*
* 为什么常用第三种:
* 第三种方案需要的参数,将来可以通过配置文件配置使用。
*/
public class ReflectDemo {
public static void main(String[] args) throws ClassNotFoundException {
// 方式1
Person p = new Person();
Person p2 = new Person();
Class c = p.getClass();
Class c2 = p2.getClass();
System.out.println(p == p2);// false
System.out.println(c == c2);// true
// 方式2
Class c3 = Person.class;
System.out.println(c == c3);
// 方式3
// public static Class<?> forName(String className)
Class c4 = Class.forName("cn.itcast_01.Person");
// cn.itcast_01.Person
// cn.itcast_01.Person
System.out.println(c == c4);
}
} 希望大神指点下
|