要求jdk1.5以上
public class ReflectPoint {public int x;public int y;public ReflectPoint(int x, int y) {super();this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}}
public class ReflectPoint {public int x;public int y;public ReflectPoint(int x, int y) {super();this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}}import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class IntroSpectorTest {/*** @param args*/public static void main(String[] args) throws Exception{ReflectPoint rp = new ReflectPoint(1,2);getProperties(rp);getProperties2(rp);Object y = 7;SetProterties(rp, y);}//用反射獲得指定JAVABean屬性的值private static void getProperties(ReflectPoint rp)throws Exception {Field field = rp.getClass().getDeclaredField("x");System.out.println(field.get(rp));;}//用反射設定指定JAVABean屬性的值private static void SetProterties(Object rp, Object y)throws Exception{PropertyDescriptor pd2 = new PropertyDescriptor("y",rp.getClass());Method method = pd2.getWriteMethod();method.invoke(rp, y);System.out.println(((ReflectPoint) rp).getY());}//用反射獲得指定JAVABean屬性的值private static void getProperties2(Object rp)throws Exception{PropertyDescriptor pd = new PropertyDescriptor("x",rp.getClass());Method methodGetx = pd.getReadMethod();Object retvalx = methodGetx.invoke(rp);System.out.println(retvalx.getClass().getName());}}