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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.heima;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

/*
* 4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   
* public void setProperty(Object obj, String propertyName, Object value){   
*
* }
*/
public class Test04 {
        static Property propertyNeme;

        public static void main(String[] args) throws Exception {
                // 根据题意创建两个对象
                // 这里使用反射应该设置配置文件,从配置文件里获得对象名的但是在这里,就直接给出对象来动态获取对象名

                // 提供对象名称的字符串
                String className = "com.heima.Property";
                Class clazz = Class.forName(className);
                // 提供未知对象的属性名称
                String fieldName = "propertyNeme";
                Field field = clazz.getDeclaredField(fieldName);
                // 获取指定的构造器。获取Person类中两个参数string,int的构造函数。
                Constructor cons = clazz.getConstructor(String.class);
                // 通过对象名称创建出对象obj value
                Object obj = cons.newInstance("lufei");
                Object value = cons.newInstance("namei");

                // Property obj = new Property("lufei");

                setProperty(obj, fieldName, value);
                //System.out.println(obj.toString());
        }

        public static void setProperty(Object obj, String propertyName, Object value)
                        throws Exception {
                /*
                 * Field f = obj.getClass().getDeclaredField(propertyName);
                 * f.setAccessible(true); f.set(obj, value); }
                 */
        }

        class Property {
                // 给对象显示初始化
                private String propertyNeme;

                public Property(String propertyNeme) {
                        super();
                        this.propertyNeme = propertyNeme;
                }

                public Property() {
                        super();
                        // TODO Auto-generated constructor stub
                }

                public String getPropertyNeme() {
                        return propertyNeme;
                }

                public void setPropertyNeme(String propertyNeme) {
                        this.propertyNeme = propertyNeme;
                }

        }
}

3 个回复

正序浏览
同问  这是入学考试么?
回复 使用道具 举报
是不是应该用到暴力访问呀
回复 使用道具 举报
完全没明白什么意思,是入学考试吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马