Java中的反射 类加载基础知识: 类加载器: 反射: 为什么要学反射,什么是反射? 三种方式获得Class对象: 获得Aniki类的公共构造函数数组和单个构造函数并且创建对象: 反射获取成员变量并使用: 反射获取成员方法并使用: 在ArrayList中添加字符串: 反射结合Properties配置文件:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
类只初始化一次。

类加载器:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

反射:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
通过Class来使用Teacher和student类的内容。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

获取Class对象的方式(三种):
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

为什么要学反射,什么是反射?

反射就是不写出要想要创建的对象的类,但是依旧可以创建出该类的对象的魔法!

在框架中,我们无论写什么类,都可以被框架使用,就是利用了反射。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
a.txt存储了我们书写的类的位置。
然后字符缓冲流读入这个文件。
然后就可以通过反射搞到这个对象。

三种方式获得Class对象:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
这种灵活性最高,可以使用配置文件来完成配置。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:

构造函数数组:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
这是我们的Aniki类:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
举例:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
换成Constructor<?>[] declaredConstructors = Aniki_Class.getDeclaredConstructors();可以拿到全部。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

创建无参对象:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
我们获得的是public的无参构造函数,并且该对象名为constructor。constructor.newInstance()方法相当于使用
Aniki的无参构造方法,创造了一个Aniki类的aniki对象。

创建public有参对象:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

创建private有参对象:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
要使用暴力反射setAccessible(true)取消访问检查。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

反射获取成员变量并使用:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
打印结果啥都没有,因为咱们全都是private类型的成员变量。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
换成getDeclaredFields()就有了。
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

给private成员赋值,如果是public则使用getField()方法并且无需setAccessible(true);
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

反射获取成员方法并使用:

方法数组参照之前的例子
Method[] methods = Aniki_Class.getMethods();//所有的public方法包括从父类继承的
Method[] declaredMethods = Aniki_Class.getDeclaredMethods();//所有public和private但是不包括父类的。
让private成员函数执行,如果是public则使用getMethod()方法并且无需setAccessible(true);
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:

在ArrayList中添加字符串:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
我们可以看到getMethod方法的参数是Object类型的。
结果:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
反射可以越过泛型检查,获取它原始方法所需要的参数类型。

反射结合Properties配置文件:

Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
略有尴尬,暂时无法表示配置文件的参数,所以我们含参的Method的参数
String.class, Integer.class, int.class还是要写在外面。
配置文件:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件:
结果:
Java中的反射
类加载基础知识:
类加载器:
反射:
为什么要学反射,什么是反射?
三种方式获得Class对象:
获得Aniki类的公共构造函数数组和单个构造函数并且创建对象:
反射获取成员变量并使用:
反射获取成员方法并使用:
在ArrayList中添加字符串:
反射结合Properties配置文件: