zoukankan      html  css  js  c++  java
  • java类型反射

        private Object setValueFromJson(JSONObject jsonObj, Object object)
                throws IllegalArgumentException, IllegalAccessException,
                InvocationTargetException, ParseException {
            if (jsonObj == null || object == null || jsonObj.length() == 0) {
                return null;
            }
            Method[] methods = object.getClass().getMethods();
            for (Method m : methods) {
                String mName = m.getName();
    
                if (!mName.startsWith("set")) {
                    continue;
                }
                String firstLetter = mName.substring(3, 4);
                String otherLetter = mName.substring(4);
    
                String name = firstLetter.toLowerCase() + otherLetter;
                String value = jsonObj.optString(name);
                // 从JSON中解析出数据
                if (value.trim().equals("")) {
                    continue;
                }
    
                Class[] parasClass = m.getParameterTypes();
    
                if (parasClass.length != 1) {
                    continue;
                }
                // 判断方法参数类型
                String paraType = parasClass[0].getName();
                if (paraType.equals("java.lang.String")) {
                    m.invoke(object, value);
                } else if (paraType.equals("java.lang.Integer")) {
                    m.invoke(object, Integer.parseInt(value));
                } else if (paraType.equals("java.math.Bigdecimal")) {
                    m.invoke(object, new BigDecimal(value));
                }
            }
            return object;
        }

     

    宝贝网址:

  • 相关阅读:
    getComputedStyle方法获取元素CSS值
    js获得当前元素的样式
    移动端 Retina屏border实现0.5px
    CFA
    LCD驱动
    EPD的驱动
    camera原理
    Perl实战(一)
    Perl的debug小技巧
    Bus memory attribute
  • 原文地址:https://www.cnblogs.com/W203654/p/2649700.html
Copyright © 2011-2022 走看看