FieldTest:
import java.lang.reflect.Field;
public class FieldTest {
// 對於formbean 已知其屬性名稱 實現動態的對該屬性設置值 並返回formbean的實例
public static void main(String args[]) throws Exception,
IllegalAccessException {
// 類反射
Class cls = Class.forName("FieldForm");
// 實例華該類
Object obj = cls.newInstance();
// 根據filed名稱取得field實例 假設filed名稱為a
Field fd = cls.getDeclaredField("a");
// 對該field進行附值
fd.set(obj, "aaaaa");
// ============== 經過以上操作后對象obj的a屬性就被赴值了
// 以下就可以從該對象中取得a屬性的值了
FieldForm frm = (FieldForm) obj;
System.out.print(frm.getA());
}
}
對應的formbean類:
public class FieldForm {
public String a;
public String b;
public String c;
public String d;
public String e;
public String f;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
public String getD() {
return d;
}
public void setD(String d) {
this.d = d;
}
public String getE() {
return e;
}
public void setE(String e) {
this.e = e;
}
public String getF() {
return f;
}
public void setF(String f) {
this.f = f;
}
}
对于bean中为private的属性取值方法:
public class Test{
private String str="csdn";
public void print(){
System.out.println(str);
}
}
//------------------------------------
import java.lang.reflect.Field;
public class ReflectionTest{
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException{
Test t=new Test();
t.print();
Field[] f=t.getClass().getDeclaredFields();
for(int i=0;i<f.length;i++)
{
f[i].setAccessible(true);
//System.out.println(f[i].getType());
f[i].set(t, "japan");
}
t.print();
}
}
网友评论