标签:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import java.lang.reflect.Field; public class FieldTest { int i; public float f; protected boolean b; private String s; public FieldTest() { i=0; f=0.0f; b = true; s = ""; } public static void main(String[] args){ //进行类实例化: FieldTest fieldTest = new FieldTest(); //获取类的域 Field[] declaredFields = FieldTest.class.getDeclaredFields(); for(int i=0;i<declaredFields.length;i++){ Field field = declaredFields[i]; System.out.println("名称为:"+field.getName()); Class fieldType = field.getType(); System.out.println("类型为:"+field.getType()); boolean isTurn = true; while(isTurn) { try{ isTurn = false; System.out.println("修改前的值为:"+ field.get(fieldTest)); if(fieldType.equals(int.class)) { System.out.println("利用setInt()方法修改成员变量的值."); field.setInt(fieldTest, 124); } else if(fieldType.equals(float.class)) { System.out.println("利用setFloat()方法修改成员变量的值."); field.setFloat(fieldTest, 9.9f); }else if(fieldType.equals(boolean.class)) { System.out.println("利用setBoolean()方法修改成员变量的值."); field.setBoolean(fieldTest, false); } else { System.out.println("利用set()方法修改成员变量的值."); field.set(fieldTest, "NWQ"); } System.out.println("修改后的值为:"+field.get(fieldTest)); }catch(Exception e) { System.out.println("在设置成员变量时发生异常,执行setAccessible()方法."); //修改可访问性,如果为true,当前域的所有成员都可以访问 field.setAccessible(true); isTurn = true; } } System.out.println("**************"); } } }
标签:
原文地址:http://my.oschina.net/carbenson/blog/496931