使用内省API来操作JavaBean。假设有一个名为Person
的JavaBean类,望在运行时动态地获取和设置其属性值。
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) {
Person person = new Person();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
String propertyName = propertyDescriptor.getName();
if (propertyName.equals("name")) {
Method setter = propertyDescriptor.getWriteMethod();
setter.invoke(person, "Alice");
} else if (propertyName.equals("age")) {
Method setter = propertyDescriptor.getWriteMethod();
setter.invoke(person, 25);
}
}
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}