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

    执行效果:

  • 相关阅读:
    自定义文书思路
    传输
    Netty的组件和设计
    第一款Netty应用程序
    Netty异步和事件驱动
    初识MQTT
    TCP/IP协议分层模型
    uni原生插件的开发(安卓)
    uniapp离线打包记录
    日常问题处理:Linux通过设备名称如何查看硬盘SN
  • 原文地址:https://www.cnblogs.com/alsf/p/8245227.html
Copyright © 2011-2022 走看看