使用java的反射功能,获得class类的各种信息
要分析的是student这个类,这个类的源码为
package com.j.test; /** * Created by brady on 15-1-15. */ public class Student { int age; String name; public int getDay( int yearDay ){ int aa = 0; aa = age*yearDay; return aa; } }
package com.j.test; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Operate { public static void main(String[] args){ Class s = Student.class; // 获得变量类型 Field[] f = s.getFields(); System.out.print("变量:"); for (Field fl : f){ System.out.print( fl.getClass().getName() ); } System.out.println(); // 获得对象的方法名 Method[] methods = s.getMethods(); for( Method m : methods ){ System.out.print("方法名:" + m.getName() + " "); // 获得参数名 Class[] p = m.getParameterTypes(); System.out.print("参数为:" ); for( Class pl : p ){ System.out.print(pl.getName() + " "); } // 获得方法返回值类型 Class rt = m.getReturnType(); System.out.print("返回值类型为:" + rt.getName() + " "); System.out.println(); } } }
变量: 方法名:getDay 参数为:int 返回值类型为:int 方法名:wait 参数为:long int 返回值类型为:void 方法名:wait 参数为:long 返回值类型为:void 方法名:wait 参数为:返回值类型为:void 方法名:equals 参数为:java.lang.Object 返回值类型为:boolean 方法名:toString 参数为:返回值类型为:java.lang.String 方法名:hashCode 参数为:返回值类型为:int 方法名:getClass 参数为:返回值类型为:java.lang.Class 方法名:notify 参数为:返回值类型为:void 方法名:notifyAll 参数为:返回值类型为:void
原文地址:http://blog.csdn.net/yaoqinggg/article/details/42740401