java的反射:
具有分析类的能力,并且可以动态获取类中的所有信息;
Class类:
Class类对象的示例化:在程序运行期间,java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息保存着每个对象所属的类路径,java虚拟机利用运行时信息执行相应的方法。
package com.zhangchao;
import com.zhangchao.bean.Person;
public class ReflectionTest {
public static void main(String[] args) {
newInstance1();
newInstance2();
newInstance3();
}
/**
* 获取字节码类的实例对象方式一
*/
public static void newInstance1() {
Person p = new Person();
Class<?> clazz = p.getClass();
}
/**
* 获取字节码类的实例对象方式二
*/
public static void newInstance2() {
Class<?> clazz = Person.class;
}
/**
* 获取字节码类的实例对象方式三
*/
public static void newInstance3() {
String s = "com.zhangchao.bean.Person";
try {
Class<?> clazz = Class.forName(s);
Object obj = clazz.newInstance();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
public static Class<?> forName(String className)
返回与带有给定字符串名的类或接口相关联的 Class
对象
public T newInstance()
返回这个类的新实例