美文网首页
Java反射机制学习总结

Java反射机制学习总结

作者: 耀东wang | 来源:发表于2018-08-20 15:14 被阅读0次

    介绍反射机制

    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.参数值。

    相关文章

      网友评论

          本文标题:Java反射机制学习总结

          本文链接:https://www.haomeiwen.com/subject/zvwkiftx.html