public class Test1 { /** public void setProperty(Object obj, String propertyName, Object value){ } * @param args */ private static String kind="dog"; public static void main(String[] args) { // TODO Auto-generated method stub Test1 a = new Test1(); setProperty sp =new setProperty(); //调用setProperty类中的方法,并将所要改变的值传递过去 sp.setProperty(a, "kind", "dog"); System.out.print("动物种类:"+Test1.kind); } } class setProperty{ public void setProperty(Object obj, String propertyName, Object value) { try { //获得反射对象 Field field = obj.getClass().getDeclaredField(propertyName); //设置可以访问变量 field.setAccessible(true); //将kind由dog改变为cat field.set(obj,"cat"); } catch (Exception e) { //改变失败则输出修改失败"修改失败" System.out.println("修改失败"); } } } |
心灵的微幸福 发表于 2014-6-4 12:14
没看清你的标题,麻烦你再写一下,估计我可以帮你解答。
123_yaya 发表于 2014-6-4 12:54
楼主,你首先要理解一下字段是什么哦?并不是这个类里面有private static String kind="dog";就代表kind是T ...
ysdolls 发表于 2014-8-26 12:48
正巧刚刚做完这道题,上网查下做的对不对,搜到这里。发一下我的吧
﹍清尘〢 发表于 2014-11-20 14:19
小弟的代码,感觉没必要用暴力反射啊,因为好像没必要封装类里面的变量,请指教:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |