java的反射多用于框架之中,在此简单了解
在我看来反射其实是一种手动去加载,相比自动加载important和new和对象.方法名来说,它的却比较麻烦。但是只要你知道一个类的全路径,你就可以知道他的所有信息。甚至,这个类不需要有明确的类型对象,我们也可以使用这个类。
获得类
在此介绍两种方法
1.类名.class 在应用中比较多
2.forName 在框架映射中很常见
得到类的对象
使用forName后,根据构造器类型得到对象
无参构造器,直接使用newInstance(),得到对象类型直接填object即可
有参构造器,先得到构造器,再实例。getConstractor(类型类,比如string.class,填入需要的参数即可),得到的类型是Constractor。得到构造器后,用 构造器.newInstance(具体参数,比如"严浩文")。这样就获得了一个对象(相当于new obj(严浩文))
得到方法
得到类之后,用 类.getDeclaredMethod(方法名string,参数:类型类) 获得当前类的方法。
调用方法
调用invoke,获得方法,对象后。
方法.invoke(对象,具体参数)
相当于obj.method(具体参数)
调用属性
在获得类和对象以后,可以通过getDeclaredFiles()获得一个类型为Files的属性对象,现在可以对这个对象进行两个操作。放入值:属性对象.set(对象,值),相当于对某个对象的属性设置值。取得值:属性对象.get(对象)。
网友评论