为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

课程名称: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!


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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消