Java反射(三):java获取方法信息

来源:互联网 发布:什么是互联网软件开发 编辑:程序博客网 时间:2024/05/22 08:26
1、基本数据类型,某些关键字也有类类型
package testclass;public class ClassDemo {public static void main(String[] args) {Class c1 =int.class;Class c2 =String.class;Class c3 =double.class;Class c4 =short.class;Class c5 =float.class;Class c6 =long.class;Class c7 =Long.class;//包装类的类类型Class c8 =void.class;//返回类型的类类型System.out.println(c1.getName());System.out.println(c2.getName());System.out.println(c2.getSimpleName());//不包含包名的类名称System.out.println(c7.getName());System.out.println(c8.getName());}}

如上代码通过基本数据类型等获取类类型,再通过类类型获取类的信息,打印结果如下

除了获取名字之外还可以获取别的信息,例如构造函数信息,方法信息等等。

2、获取类的方法信息

package testclass;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class ClassUtil {    public static void getMethodMsg(Object obj){        //要获取类的信息首先要获取类的类类型        Class clazz = obj.getClass();//传递的是哪个类的对象,clazz就是哪个类的类类型        //获取类的名称        System.out.println(clazz.getName());                //获取类的方法,一个方法就是一个Method对象        //获取类的所有public函数,包括从父类继承的        Method[] methods = clazz.getMethods();        //获取类自己所有的声明的方法,不论是什么访问权限//        methods = clazz.getDeclaredMethods();                for(Method m : methods){           // 权限修饰符            int mo = m.getModifiers();            String priv = Modifier.toString(mo);            //获取方法返回值类型的类类型            Class returnType = m.getReturnType();            //获取方法返回值类型的名称            System.out.print(priv + " "+ returnType.getName()+" ");                        //获取方法的名称            System.out.print(m.getName()+"(");                        //获得参数类型————获得参数列表类型的类类型            Class[] clazzs =m.getParameterTypes();            for (int i = 0; i < clazzs.length; i++) {                StringBuffer methodName = new StringBuffer(clazzs[i].getName());                if(i<clazzs.length-1){                    methodName.append(",");                }                System.out.print(methodName);            }            System.out.println(")");        }    }        public static void main(String[] args) {        String s="hello";        ClassUtil.getMethodMsg(s);    }}


阅读全文
0 0
原创粉丝点击