反射机制
一 反射机制的作用
1. 通过java语言中的发射机制可以操作字节码文件。(可以读和修改字节码文件)
2. 反射机制的包:java.lang.reflect.*
反射机制相关的类:
java.lang.Class //代表字节码文件
java.lang.reflect.Method //代表字节码中的方法
java.lang.reflect.Field //代表字节码中的属性字节码
java.lang.reflect.Constructor //代表字节码中的构造方法
//Class
class User{
//Field
public int no;
//Constructor
public User(int no) {
this.no = no;
}
//Method
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
}
3. 三种方式获取java.lang.Class实例
1. Class c1 = Class.forname("java.lang.String"); //字符串需要的是一个完整的类名,必须带有包名
2. String str = "abc";
Class c2 = str.getClass()
c1 == c2 //结果为true
3. java中的任何一种类型,包括基本数据类型,都有.class属性
Class c3 = String.class
4. 通过反射实例化对象
c1.newInstance(); //newInstance()调用的是无参构造,必须保证无参构造是存在的