一般我们在使用反射的时候 都是 直接直接用java 原生提供的方法来写,写的多了 就感觉麻烦
try{
Class baseDexClassLoaderClass = Class.forName("dalvik.system.BaseDexClassLoader");
Field pathListField = baseDexClassLoaderClass.getDeclaredField("pathList");
pathListField.setAccessible(true);
pathListField.get(pathClassLoader);
}catch(E e){
...
}
有点麻烦吧
一个java 封装好的反射库,比较好用 JOOR
android 如果使用 只需要导入 Reflect.java 和ReflectException.java 类就可以了
具体用法直接看Reflect.java 里面的具体代码
但要注意的一点是虽然 封装之后不会提示你 捕获异常 try catch 但是为了代码的严谨 还是要加的
String str = Reflect.onClass("java.lang.String")
.create("Hello Reflect")// 调用构造方法
.call("substring", 6) //调用 substring 方法 参数是 6
.call("toString")//调用 toString 方法
.get(); //获取一个string 对象
String substring =Reflect. onClass("java.lang.String")
.create("Hello World")
.as(StringProxy.class) // 为被包装的对象创建一个代理
.substring(6); // 调用代理方法
地址 girhub 搜 joor 第一个就是