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

  • 相关阅读:
    Axis2 1.7.4构建项目
    MyBatis之传入参数
    eclipse快捷键
    WEB-INF目录下的jsp页面如何访问?
    web-content和web-info目录问题
    http响应报文和http请求报文 详细信息
    极光推送知识点2
    极光推送别名、标签怎么理解
    推送的通知和自定义消息区别
    个推
  • 原文地址:https://www.cnblogs.com/bsyx/p/7107382.html
Copyright © 2011-2022 走看看