| 复制代码public class IntroSpectorTest {
        public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                ReflectPoint pt1 = new ReflectPoint();//创建操作对象实例
                
                String str = "s";            //定义要操作的对象属性名
                //"x"-->"X"-->"getX"-->MethodGetX-->
                //getMethod(pt1, str);
        
                Object value = "123";
                PropertyDescriptor pd1 = new PropertyDescriptor(str, pt1.getClass());
                Method methodSetX = pd1.getWriteMethod();
                methodSetX.invoke(pt1, value);//此处是设置对象的属性s的值为123,是不是就是类ReflectPoint的s值?
            System.out.print(pt1.getS()); //此处得到的是属性s的值为123,为什么类ReflectPoint值没变。
        }                                                                  //是不改变的是.class文件内的值而.java中值不变。个人对反射那的知识点还不很熟悉,高手帮忙解释下感谢
        
        }
 class ReflectPoint {
        
        private String s = "hello";
        
        public String getS() {
                return s;
        }
        public void setS(String s) {
                this.s = s;
        }
        public ReflectPoint(String s) {
                super();
                this.s = s;
        }
        public ReflectPoint() {
        }
 }
 |