前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-方法反射的基本操作

Java-方法反射的基本操作

作者头像
itze
发布2022-10-31 15:56:04
2680
发布2022-10-31 15:56:04
举报
文章被收录于专栏:IT者
代码语言:javascript
复制
public class ClassDemo2 {
    /**
     * @Author: www.itze.cn
     * @Date: 2020/9/21 10:37
     * @Email: 814565718@qq.com
     */
    public static void main(String[] args) {
        /**
         * 要获取一个方法,就是获取一个类的信息,要获取类,就要先获取该类的类类型
         */
        A a = new A();
        Class<? extends A> aClass = a.getClass();
        /**
         * 获取方法
         * getMethod()获取的时所有public的方法
         * getDelcaredMethod()获取的时自己声明的方法
         */
        try {
            Method aClassDeclaredMethod = aClass.getMethod("print", new Class[]{int.class, int.class});
            /**
             * 方法的发射
             * 见到参数中出现...可以使用该类型的数组形式或者直接参数形式
             */
            //正常调用 a.print();
            aClassDeclaredMethod.invoke(a, new Object[]{1, 1});
            System.out.println("========================");
            Method method = aClass.getMethod("print", String.class, String.class);
            method.invoke(a, "hello", "Word");
            /**
             * 无参调用也是两种方式,
             * 方式一:getMethod("方法名","new Class[]{}")
             * 方式二:getMethod("方法名")
             */
            Method priMethod = aClass.getMethod("print");
            priMethod.invoke(a);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class A {
    public void print() {
        System.out.println("This No Param Method");
    }

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

    public void print(String a, String b) {
        System.out.println(a.toUpperCase() + "," + b.toLowerCase());

    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年9月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档