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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xingzjx 中级黑马   /  2015-3-17 17:44  /  775 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test2 {
       
        public static void main(String[] args) {
                Point p = new Point();
                p.setX(1);
                p.setY(2);
                System.out.println("原始的p:"+p);
                setProperty(p, "x", 5);
                System.out.println("设值的p:"+p);
        }

        /**
         * 给某个对象的属性设置某个值,属性名为propertyName,值是value,设置的对象是obj
         * @param obj
         * @param propertyName
         * @param value
         */
        public static void setProperty(Object obj, String propertyName, Object value) {
                try {
                        // 获取属性对象Field
                        Field field = obj.getClass().getDeclaredField(propertyName);
                        // 设置可以访问
                        field.setAccessible(true);
                        // 设值
                        field.set(obj, value);
                } catch (Exception e) {
                        e.printStackTrace();
                        System.out.println("修改失败!");
                }
               
        }

}

class Point {
        private int x;
        private int y;
       

        public int getX() {
                return x;
        }

        public void setX(int x) {
                this.x = x;
        }

        public int getY() {
                return y;
        }

        public void setY(int y) {
                this.y = y;
        }

        @Override
        public String toString() {
                return "x = "+x+", y = "+y;
        }
       
       
}

2 个回复

倒序浏览
这是反射那一块的知识吧
回复 使用道具 举报
en对。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马