使用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;
}
}
通过java的反射功能可以打印出student类里面的方法名,方法的参数等信息
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();
}
}
}
可以运行查看到console的结果
变量:
方法名: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