继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第十七天+通过反射获取方法

ccLoveStudy
关注TA
已关注
手记 82
粉丝 6
获赞 5

课程名称:java反射的基本操作

课程章节:第五

主讲老师:Cedar


课程内容:

//java获取方法
public class MethodDemo1 {
    public static void main(String[] args) {
        /**
         *获取print(int int)方法  1:获取一个方法就是获取类的信息
         * 首先要获取类信息的类类型
         *
         */
        A a1 = new A();
        Class c = a1.getClass();
        //2:获取方法,名称和参数列表来决定
        try {
            //方法可能不存在,所以要抛出异常
            Method m = c.getDeclaredMethod("print", new Class[]{int.class, int.class});
            //方法的反射操作:用m对象来调用方法,等同于a1.print()
            //方法如果没有返回值,返回null,如果有返回返回值
//            Object o = m.invoke(a1, new Object[]{10, 20});
            Object o = m.invoke(a1,10,20);
            System.out.println("=================");
            //获取方法对象print(String,String)
            Method m1 = c.getMethod("print", String.class, String.class);
            //用方法进行反射操作
            o = m1.invoke(a1,"hello","World");
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }


//        c.getMethod();
    }
}

class A{
    public void print(int a, int b){
        System.out.println(a + b);
    }

    public void print(String s , String ss){
        System.out.println(s.toUpperCase() + "," + ss.toUpperCase());
    }
}

课程收获:

通过反射获取指定对象中的所有public或者声明方法,都是可以做到的,这些都是之前没有触及或者说没有想到过的,所以说,还是要加油学习,学的越多,了解的越多!!


加油加油,fighting!


http://img2.sycdn.imooc.com/632912c30001f6da16750859.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP