Java反射机制学习总结

2018-08-20  本文已影响0人  耀东wang

介绍反射机制

1.反射机制的应用场景

逆向代码、动态生成类框架等,使用反射机制能够大大的增强程序的扩展性。

2.反射的基本步骤

首先获得Class对象,然后实例化对象,获得类的属性、方法或者构造函数,最后访问属性、调用方法、调用构造函数创建对象。而invoke()方法就是用来执行指定对象的方法。

3.简单小例子

 Class Clz = InflectClass.class;
        try {
            InflectClass obj = (InflectClass) Clz.newInstance();
            Method m = Clz.getDeclaredMethod("showMessage",String.class);
            m.setAccessible(true);
            Log.d(TAG, "onCreate: "+m.invoke(obj,"SerryWang"));
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

代码说明

首先我们获得相关类的字节码文件,通过newInstance()可以对应类的实例。我们可以通过getDeclaredMethod访问相应的方法,如果是私有的还要用到setAccessible(true),getDeclaredMethod()方法两个参数的意义分别是
1.方法名 2.方法参数类型
然后通过invoke就可以执行相应的方法,invoke两个参数的意义分别是:1.对象名 2.参数值。

上一篇下一篇

猜你喜欢

热点阅读