java反射大全

做者对反射的理解:

        方法的调用(正常的调用:对象.方法()。反射调用方法:方法.对象())java

        静态属性的调用(正常的调用:类.属性。反射调用:属性.类)
android

常见反射的用法:

        1.经过反射获取类

            Class<?> demo1 = Class.forName("java.util.Date");
spa

            Class<?> demo1_1 = java.util.Date.class;
code

            Class<?> demo1_2 = "java.util.Date" .getClass();orm

            Class<?> demo1_3 = new java.util.Date(10).getClass();对象

             Class<?> demo2 = Class.forName("android.media.MediaRecorder$OutputFormat"); //内部类get

        2.经过反射获取方法(不包含不可见的方法,如私有方法)

            Method mtdGetDefault = demo1 .getMethod("Date");// 普通方法,后面“Date”表明方法名称it

            Object obj = mtdGetDefault.invoke(demo1,参数1,参数2,参数3...);       class


      Constructor<?> cons = demo2.getConstructor(Integer.class,String.class,Object.class, ...);// 构造方法,括号里面的是构造方法的参数stream

            Object obj1 = cons.newInstance(参数1,参数2,参数3...);


            Constructor<?> cons1[] = demo2.getConstructors();

            Object obj1_1 = cons1[0].newInstance();

            Object obj1_2 = cons1[0].newInstance(参数1,参数2,参数3...);

        3.经过反射获取静态属性(非静态属性通常使用get方法来获取)

            Field wave = demo2 .getField("WAVE"); 

            int mWava = (Integer) wave.get(demo2);

相关文章
相关标签/搜索