黑马程序员技术交流社区
标题:
反射中如何使用getFileds方法取出并打印所有成员变量?
[打印本页]
作者:
刘永建
时间:
2013-4-16 14:11
标题:
反射中如何使用getFileds方法取出并打印所有成员变量?
我知道用getField,但是这一次只能取出一个呀,请大神指教。
作者:
刘策
时间:
2013-4-16 14:38
package day03;
import java.lang.reflect.Field;
public class Test {
private int x;
private String str;
public float y;
public static void main(String[] args) throws Exception{
Test test = new Test();
//获取 一个字节码对象
Class cla = Class.forName("day03.Test");
Field[] fields = cla.getDeclaredFields();
for(Field field : fields){
field.setAccessible(true);
System.out.println(field.get(test));
}
}
}
复制代码
我比较喜欢getDeclaredFields().这个方法,这个方法不管你什么权限都能拿到,
作者:
HM张健
时间:
2013-4-18 14:54
import java.util.*;
import java.lang.reflect.*;
public class ReflectionTest{
public static void main(String[] args){
String name;
Scanner in = new Scanner(System.in);
System.out.println("请输入类名(例如:java.util.Date)");
name = in.next();
try{
Class cl = Class.forName(name);
printFields(cl);
System.out.println();
}catch(ClassNotFoundException cn){
cn.printStackTrace();
}
System.exit(0);
}
public static void printFields(Class cl){
Field[] fields = cl.getFields();
for(Field f:fields){
Class type = f.getType();//类型名
String name = f.getName();//成员变量名
System.out.println(" ");
String modifiers = Modifier.toString(f.getModifiers());//修饰符
System.out.print(modifiers+" "+type+" "+name+";");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2