• [javaSE] 反射-Class类的基本操作


    获取类的名称

    获取该类的方法

    获取方法的返回值类型

    获取方法的名称

    获取方法的参数的类型

    package com.tsh.reflect;
    
    import java.lang.reflect.Method;
    
    public class ReflectDemo {
        public static void main(String[] args) {
            //int的类类型
            Class c1=int.class;
            //String的类类型,String的字节码
            Class c2=String.class;
            Class c3=double.class;
            Class c4=void.class;
            
            System.out.println(c1.getName());//输出 int
            System.out.println(c2.getName());//输出 java.lang.String
            
            ReflectDemo reflectDemo=new ReflectDemo();
            printClass(reflectDemo);
        }
        /**
         * 打印类的信息
         * @param obj
         */
        public static void printClass(Object obj){
            Class c=obj.getClass();
            System.out.println("类的名称:"+c.getName());
            //获取该类的方法获取该类的public的方法
            Method[] methods=c.getMethods();
            for(Method method: methods){
                //获取返回值类型
                Class returnTypeClass=method.getReturnType();
                String returnType=returnTypeClass.getSimpleName();
                //获取方法的名称
                String methodName=method.getName();
                //获取参数的类型
                Class[] paramClass=method.getParameterTypes();
                String params=new String();
                int i=0;
                for(Class param:paramClass){
                    if(i!=0){
                        params+=","+param.getSimpleName();
                    }else{
                        params+=param.getSimpleName();
                    }
                    i++;
                }
                System.out.println(returnType+" "+methodName+"("+params+")");
            }
        }
    }

    返回结果

    类的名称:com.tsh.reflect.ReflectDemo
    void main(String[])
    void printClass(Object)
    void wait(long,int)
    void wait(long)
    void wait()
    boolean equals(Object)
  • 相关阅读:
    1755:菲波那契数列
    1788:Pell数列
    3089:爬楼梯
    7832:最接近的分数
    7649:我家的门牌号
    7216:Minecraft
    7213:垃圾炸弹
    2983:谁是你的潜在朋友
    2723:因子问题
    2722:和数
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5866539.html
Copyright © 2020-2023  润新知