通过反射给类中的属性赋值
Field f = 类名.getClass().getDeclaredField(属性名);
f.setAccessible(true);
f.set(类对象, 属性值);
示例:
import java.lang.reflect.Field;
public class FieldTest {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
FieldTest ft = new FieldTest();
Field f = null;
String column = "";
try {
column = "name";
f = ft.getClass().getDeclaredField(column);
f.setAccessible(true);
f.set(ft, "张三");
System.out.println(ft.getName());
column = "age";
f = ft.getClass().getDeclaredField(column);
f.setAccessible(true);
f.set(ft, 16);
System.out.println(ft.getAge());
column = "CardID";
f = ft.getClass().getDeclaredField(column);
} catch (NoSuchFieldException e) {
System.out.println(column+",没有该字段");
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
}
控制台输出如下:
张三
16
CardID,没有该字段
java.lang.NoSuchFieldException: CardID
at java.lang.Class.getDeclaredField(Unknown Source)
at com.test.FieldTest.main(FieldTest.java:35)