JavaBean 反射机制实现自动配置数据

声明:该版本是没完成的。该博文只做记录代码用

String memberType(String name) throws Exception
    {
        return getType(getClass().getField(name));
    }

    public static DiaryInfo parse(JSONObject data) {
        if (data == null) return null;
        DiaryInfo info = new DiaryInfo();
        String name;
        Method action;
        Object value;
        Iterator<String> keys = data.keys();
        try {
            while (keys.hasNext()) {
                name = keys.next();
                value = data.get(name);
                action = info.getClass().getMethod("set" + ZHelper.ucfirst(name), String.class);
                action.invoke(info.getClass(), value);
            }
        } catch (JSONException e) {
            AppException.json(e);
        } catch (NoSuchMethodException e) {
            AppException.run(e);
        } catch (InvocationTargetException e) {
            AppException.run(e);
        } catch (IllegalArgumentException e) {
            AppException.run(e);
        } catch (IllegalAccessException e) {
            AppException.run(e);
        }
        return info;
    }

对JAVA 没什么经验,弄出了上面的代码,但是被 invoke 的参数类型郁闷,本来是想写个同名 Object 参数的 set 方法,然后自己转换数据类型,但觉得太麻烦了。后来我又想通过获取类中的 成员变量的类型来动态给 invoke 的参数值,但发现搞不定,很费时间,还是只有先 if else if 了,不浪费时间了,以后有经验了再来重写。

转载于:https://my.oschina.net/zhouz/blog/213200

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值