zoukankan      html  css  js  c++  java
  • java反射-获取方法信息

    例子代码如下:

    package com.reflect;
    
    import java.lang.reflect.Method;
    
    public class ClassUtill {
        
        /*
         * 打印类的信息,包括类的成员函数,成员变量,
         * obj 该对象所属类的信息
         * */
        public static void printClassMessage(Object obj)
        {
            //要获取类的信息,首先要获取类的类类型
            Class c=obj.getClass();    //传递的是哪个子类的对象,c就是该子类的类类型。
            //获取类的名称
            System.out.println("类的名称是"+c.getName());
            
             /*
             * Method类,方法对象
             * 一共成员方法就是一共Method对象
             * getMethods()方法是获取的所有的public的函数,包括父类继承而来的
             * getDeclaredMethods()获取的是该类自己声明的方法,不问访问权限
             * */
            Method[] ms=c.getMethods();    //c.getDeclaredMethods()
            for(int i=0;i<ms.length;i++)
            {
                //得到方法的返回值类型的类类型
                Class returnType=ms[i].getReturnType();
                System.out.print(returnType.getName()+" ");
                //得到方法的名称
                System.out.print(ms[i].getName()+"(");
                //获取参数类型-->得到的是参数列表的类型的类类型
                Class[] paramTypes=ms[i].getParameterTypes();
                for (Class class1 : paramTypes) {
                    
                    System.out.print(class1.getName()+",");
                }
                System.out.println(")");
            }
        }
    }

    调用这个类:

    package com.reflect;
    
    public class ClassDemo2 {
    
        public static void main(String[] args) {
    
            String s="hello";
            ClassUtill.printClassMessage(s);
        }
    }

    执行效果:

  • 相关阅读:
    求求你,快去学习吧!!
    研究生英语读写译----topic3
    SQL----where 和 on 的区别
    SQL----语句执行顺序
    SQL----Inner Join、 Outer Join、Cross Join理解
    将一般的数值转换为金额格式(分隔千分位和自动增加小数点)
    伪元素 before 和 after 各种妙用
    抽空笑一笑
    别笑抽咯
    JavaScript继承方式详解
  • 原文地址:https://www.cnblogs.com/alsf/p/8245227.html
Copyright © 2011-2022 走看看