反射-获取方法信息
测试类:
public class Test { public static void main(String[] args) { ClassDemo3 classDemo3 = new ClassDemo3(); String string = "hello"; printClassMessage(string); } }
package classes; import com.sun.org.apache.xpath.internal.SourceTree; import java.lang.reflect.Method; public class ClassDemo3 { /*打印类的信息,包括成员变量,和方法*/ 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(); for(Method m : ms){ //得到方法的返回值的类类型 Class returnType = m.getReturnType(); System.out.print("returnType : " + returnType.getName() + " <--"); //得到方法名 System.out.println("方法名:" + m.getName()); //获取参数类型 Class[] paramTypes = m.getParameterTypes(); for(Class classs : paramTypes){ System.out.println("参数列表中的参数类类型 : " + classs.getName()); } } } }