A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 张亚超 中级黑马   /  2015-4-15 13:16  /  458 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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格式,为什么还要加上双引号呢?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马