JavaBean的toString方法工具类

BaseBean
public class TestBean extends BaseBean {

    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
TestBean
public class Test {

    public static void main(String[] args) {
        TestBean testBean = new TestBean();
        System.out.println("默认值:" + testBean.toString());
        testBean.setId(10010);
        testBean.setName("李四");
        System.out.println("赋值之后:" + testBean.toString());
    }
}
Test

 

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;

public class ToStringUtils {

    public static final String GET = "get";

    /**
     * 返回JavaBena的toString方法值
     * 
     * @param t
     * @return String
     */
    public static <T> String getToString(T t) {
        String result = null;
        Field[] fields = t.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
        LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
        for (Field field : fields) {
            field.setAccessible(true);
            String name = field.getName(); // 获取属性的名字
            Object value = getAttributeValue(t, name);// 获取属性值
            map.put(name, value != null ? value : null);
            name = null;
            value = null;
        }
        result = map.toString();
        fields = null;
        map.clear();
        map = null;
        return result;
    }

    /**
     * 返回JavaBena的toString方法值(只有属性的情况下)
     * 
     * @param t
     * @return String
     */
    public static <T> String getToString1(T t) {
        String result = null;
        Field[] fields = t.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
        LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
        for (Field field : fields) {
            try {
                field.setAccessible(true);
                map.put(field.getName(), field.get(t));
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        result = map.toString();
        fields = null;
        map.clear();
        map = null;
        return result;
    }

    /**
     * 通过反射,用属性名称获得属性值
     * 
     * @param t
     * @param attributeName
     * @return Object
     */
    private static <T> Object getAttributeValue(T t, String attributeName) {
        Object result = null;
        Method method = null;
        try {
            StringBuffer methodName = new StringBuffer(GET);
            methodName.append(attributeName.substring(0, 1).toUpperCase());
            methodName.append(attributeName.substring(1));
            method = t.getClass().getMethod(methodName.toString());
            methodName = null;
            result = method.invoke(t);
            method = null;
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }
}

 

转载于:https://www.cnblogs.com/QQ80565970/p/5942958.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值