Object几个方法

    /**
     * 根据属性名获取属性值
     * get后的字母必须是大写字母的方法 getUId (uId)
     */
    public static Object getFieldValueByName(String fieldName, Object o) {
        try {
            String firstLetter = fieldName.substring(0, 1).toUpperCase();
            String getter = "get" + firstLetter + fieldName.substring(1);
            Method method = o.getClass().getMethod(getter, new Class[]{});
            Object value = method.invoke(o, new Object[]{});
            return value;
        } catch (Exception e) {
            return null;
        }
    }

	Field[] fields = o.getClass().getDeclaredFields();//获取所有属性(public、protected、default、private),但不包括父类属性
	Field[] fields = o.getClass().getFields();//获取类的属性(public),包括父类

    //获取类的所有属性(public、protected、default、private),包括父类的属性
    public static Field[] getAllFields(final Class<?> cls) {
        final List<Field> allFieldsList = getAllFieldsList(cls);
        return allFieldsList.toArray(new Field[allFieldsList.size()]);
    }

    public static List<Field> getAllFieldsList(final Class<?> cls) {
        final List<Field> allFields = new ArrayList<Field>();
        Class<?> currentClass = cls;
        while (currentClass != null) {
            final Field[] declaredFields = currentClass.getDeclaredFields();
            for (final Field field : declaredFields) {
                allFields.add(field);
            }
            currentClass = currentClass.getSuperclass();
        }
        return allFields;
    }
    /**
     * 拼接键值对
     *
     * @param key
     * @param value
     * @param isEncode 
     * @return
     */
    private static String buildKeyValue(String key, String value, boolean isEncode) {
        StringBuilder sb = new StringBuilder();
        sb.append(key);
        sb.append("=");
        if (isEncode) {
            try {
                sb.append(URLEncoder.encode(value, "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                sb.append(value);
            }
        } else {
            sb.append(value);
        }
        return sb.toString();
    }
	/**
	 * 
	 */
    private static String map2String(Map<String, String> map) {
        if (map == null || map.size() == 0) {
            return "";
        }
        List<String> keys = new ArrayList<String>(map.keySet());
        // key ASCII码从小到大排序
        Collections.sort(keys);

        // 至少一个
        StringBuilder stringSb = new StringBuilder();
        for (int i = 0; i < keys.size() - 1; i++) {
            String key = keys.get(i);
            String value = map.get(key);
            stringSb .append(buildKeyValue(key, value, false));
            stringSb .append("&");
        }
        String tailKey = keys.get(keys.size() - 1);
        String tailValue = map.get(tailKey);
        stringSb .append(buildKeyValue(tailKey, tailValue, false));

        //LogUtil.e("parament stringSb :", stringSb .toString());
        return stringSb .toString();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值