栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java反射之方法的反射

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java反射之方法的反射

方法的反射
  • 获取某个方法:通过方法名称和方法的参数列表唯一确定某个方法
  • 方法的反射操作
method.invoke(对象,参数列表)
方法的反射步骤
  • 获取一个方法,首先要获取类的信息,获取类的信息必须先获取类的类类型
  • 获取方法由名称和参数列表来决定
 getMethod()获取的是public的方法

 getDeclaredMethod()方法获取的是自己生成的方法
方法的反射实例

方法如果没有返回值,返回null,有返回值则返回具体的返回值

public class MethodDemo {
    public static void main(String[] args) {
        //获取print(int,int)方法
        //1.获取一个方法,首先要获取类的信息,获取类的信息必须先获取类的类类型
        A a1 = new A();
        Class c = a1.getClass();
        //2.获取方法由名称和参数列表来决定
        
//        Method m = c.getMethod("print", new Class[]{int.class, int.class});
        try {
            Method m = c.getMethod("print", int.class, int.class);
            a1.print(10,20);
            //方法的反射操作是用m对象来进行方法调用和a1.print()调用效果是一样的
//            m.invoke(a1,new Object[]{10,20});
            //方法如果没有返回值,返回null,有返回值则返回具体的返回值
            Object obj = m.invoke(a1, 10, 20);
            System.out.println("==================================================");
            a1.print("hello","WORLD");
            Method m1 = c.getMethod("print", String.class, String.class);
            Object invoke = m1.invoke(a1, "a", "B");
            System.out.println("==================================================");
            a1.print();
            Method m2 = c.getMethod("print",new Class[]{});
            m2.invoke(a1);

        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644663.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号