- 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() {
- }
- }
复制代码 |