利用反射可以得到成员变量,但是局部变量却有问题。
代码思路有点乱,请见谅。
import java.lang.reflect.*;
class A{
int r =8;
public void f1(){
int i = 0;
System.out.println("00"+i);
}
private void f2(){
float q = 3;
System.out.println("0000"+q);
}
}
class reflect_text{
public static void main(String[] args){
A a1 = new A();
Class c = a1.getClass();//获取a1类的类类型
Method[] x = c.getDeclaredMethods();//获得方法名
for(int i = 0;i<x.length;i++){
System.out.println("获得方法:"+x[i]);
System.out.println("=======================");
//获得方法的返回值类型
Class y = x[i].getReturnType();
System.out.println("方法的返回值类型:"+y.getName());
System.out.println("=======================");
//获取局部变量名
Class u = x[i].getClass();
Field[] l=u.getDeclaredFields();
for(int z=0;z<l.length;z++){
Field h = l[z];
System.out.println("获取局部变量名称"+h.getName());
}
System.out.println("=======================");
}
//获得成员变量名
Field[] l=c.getDeclaredFields();
for(int i=0;i<l.length;i++){
Field h = l[i];
System.out.println("获取成员变量的名称:"+h.getName());
}
}
}