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();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章