一、说明
在Object类中定义了以下方法,此方法将被所有子类继承:
public final Class getClass()
以上的方法返回值的类型是一个Class类。反射从运行结果来看就是通过反射求出类的名称。
1.正常方式:引入需要的”包类“名称—》通过new实例化—》取得实例化对象
2.反射方式:实例化对象—》getClass()方法—》得到完整的”包类“名称。1
2
3
4
5public void test(){
Student s=new Student();
Class clazz=s.getClass();//通过运行时类(Class)的对象,调用其getClass(),返回其运行时类。即student类的所有。
}
通过Class获取类的信息,即为反射,正常方式是倒过来的,而它是反着来的,已有创建好的类了,就通过Class获取想要获取的类的信息。
二、获取Class的类的实例的四种方式
首先,说明以下有了Class的实例以后,我们才可以进行如下的操作:
- 1.创建对应的运行时类的对象
- 2.获取对应运行时类的完整结构(属性、方法、构造器……)
- 3.调用对应的运行是类的指定结构(属性,方法,构造器)
- 4.反射的应用:动态代理
1 | public void test(){ |
三、类加载器ClassLoader
加载文件的两种方式1
2
3
4
5
6
7
8
9
10//1
ClassLoader loader=this.getClass().getClassLoader();
InputStream in=Loader.gerResourceAsStream("文件路径");
Properties p=new Properties();
p.load(in);//加载文件
获取文件内容
//2
FileInputStream fis=new FileInputStream(new File(jdbc.prorerties));
Properties p=new Properties();
p.load(fis);//加载文件