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

  • 相关阅读:
    管理这门技术和艺术
    主流双核处理器对比
    20111226自然醒
    message_t
    安装 SQL Server 2008 Management Studio Express
    Linux Ext2/Ext3/Ext4 文件系统分区
    多版本火狐共存方案及火狐配置文档高级管理技巧[转自火狐社区]
    心理学,慢慢学
    system pause in C#
    play with js
  • 原文地址:https://www.cnblogs.com/bsyx/p/7107382.html
Copyright © 2011-2022 走看看