码迷,mamicode.com
首页 > 其他好文 > 详细

用方法对象进行反射

时间:2017-07-02 23:17:13      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:返回   port   反射   pac   类类型   lang   cat   bsp   列表   

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

用方法对象进行反射

标签:返回   port   反射   pac   类类型   lang   cat   bsp   列表   

原文地址:http://www.cnblogs.com/bsyx/p/7107382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!