黑马程序员技术交流社区

标题: 关于反射的问题 [打印本页]

作者: 张亚超    时间: 2015-4-15 13:16
标题: 关于反射的问题
import java.lang.reflect.*;

public class Test1 {
       
        private String str = "abcdefdbca";

        public static void main(String[] args) throws Exception {
               
                Test1 t = new Test1();
                SetProperty s = new SetProperty();
                //调用方法
                s.setProperty(t, "str", "abcd");
                System.out.println(t.str);
               
        }       
}
//定义一个类,这个类中包含题目所要求的方法
class SetProperty {
       
        public void setProperty
                (Object obj, String propertyName, Object value)throws Exception {
                //获取字节码
                Class<? extends Object> cls = obj.getClass();
                //获取propertyName字段
                Field field = cls.getDeclaredField(propertyName);
                //暴力反射
                field.setAccessible(true);
                field.set(obj, value);
        }
}

在这一行   s.setProperty(t, "str", "abcd");
为什么把str上的双引号去掉编译就通不过呢?str就是一个字符串啊,要输出的也是String格式,为什么还要加上双引号呢?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2