zoukankan      html  css  js  c++  java
  • 用方法对象进行反射

    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);
        }
    }

  • 相关阅读:
    客户端作业day26
    cs架构和bs架构.课堂小结day26
    魔法方法day22课堂小结
    组合封装作业day21
    组合,接口day21课堂小结
    iOS端给unity发送消息,实现两者交互。
    Unity发送参数给iOSNative并响应
    关于 iOS 10 中 ATS / HTTPS /2017 问题
    Cocopod上更新上传自己的开源框架供别人下载
    iOS适配HTTPS,创建一个自签名的SSL证书(x509)具体步骤
  • 原文地址:https://www.cnblogs.com/bsyx/p/7107382.html
Copyright © 2011-2022 走看看