2つの反射方式はbeanの値を取得する(第1はすべて文字列タイプを返し、第2は元のデータタイプを返す)

1343 ワード

/**
     *      
     *
     * @param obj
     * @return
     * @throws Exception
     */
    private static StringBuffer getValue2Bean(Object obj) throws Exception {
        Field[] fields = obj.getClass().getDeclaredFields();
        StringBuffer value = new StringBuffer();
        Object v = null;
        for (Field field : fields) {
           // v = BeanUtils.getProperty(obj, field.getName());//   (       )
            v = ReflectUtil.getFieldValue(obj, field.getName());//   (        )
            if (v == null) {
                value.append("," + v);
            } else {
                if (v instanceof String) {
                    value.append(",'" + v + "'");
                } else if (v instanceof Date) {
                    value.append(",'" + DateUtil.getDateStr((Date) v) + "'");
                } else {
                    value.append("," + v);
                }

            }
        }
        value = value.deleteCharAt(0);
        return value;
    }

 
String  v = BeanUtils.getProperty(obj, field.getName());//   (       )
Object object = ReflectUtil.getFieldValue(obj, field.getName());//           ,    ,  ,