博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaBean的toString方法工具类
阅读量:5332 次
发布时间:2019-06-15

本文共 3363 字,大约阅读时间需要 11 分钟。

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 
String getToString(T t) { String result = null; Field[] fields = t.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组 LinkedHashMap
map = new LinkedHashMap
(); 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
String getToString1(T t) { String result = null; Field[] fields = t.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组 LinkedHashMap
map = new LinkedHashMap
(); 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
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

你可能感兴趣的文章
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>