• 用方法对象进行反射


    package com.mysec.reflex;

    import java.lang.reflect.Method;

    public class MethodDemo {

        public static void main(String[] args) {
            //要获取print(int,int)方法 1.要获取一个方法就是获取类的信息,获取类的信息首先要获取类的类类型
            A a = new A();
            Class<?> c = a.getClass();
            /**
             * 获取方法名称和参数列表来决定
             * getMethod获取的是public的方法
             * getDeclaredMethods获取的是自己声明的方法
             */
    //        c.getDeclaredMethods();
            try {
    //            Method method = c.getMethod("print", new Class[]{int.class,int.class});
                Method method = c.getMethod("print",int.class,int.class);//获取方法对象
                //方法的反射操作
    //            a.print(1, 2);//方法的反射操作是用method对象来进行方法调用和a.print调用的效果相同
                //如果没有返回值返回null,有返回值返回具体的返回值
                Object o = method.invoke(a, new Object[]{1,2});//用方法进行反射操作
    //            Method method2 = c.getMethod("print");
                Method method2 = c.getMethod("print", new Class[]{});
    //            method2.invoke(a, new Object[]{});
                method2.invoke(a);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        
    }

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

  • 相关阅读:
    洛谷 P1226 【模板】快速幂||取余运算 题解
    洛谷 P2678 跳石头 题解
    洛谷 P2615 神奇的幻方 题解
    洛谷 P1083 借教室 题解
    洛谷 P1076 寻宝 题解
    洛谷 UVA10298 Power Strings 题解
    洛谷 P3375 【模板】KMP字符串匹配 题解
    Kafka Shell基本命令
    Mybatis与Hibernate的详细对比
    MyBatis简介
  • 原文地址:https://www.cnblogs.com/bsyx/p/7107382.html
Copyright © 2020-2023  润新知