JavaBean 一键toString,javabeantostring
分享于 点击 2265 次 点评:181
JavaBean 一键toString,javabeantostring
javaBean自己一个变量一个变量是很单调、繁琐的事情,特别是变量很多的时候这对我本人来说,是一种很痛苦的事情。
今天,我们就用java反射机制,来实现javaBean一键toString;
首先,新建一个 JavaBeanToString 类:
然后再创建一个测试类:
/** 测试类 **/
public class Bean {
private String name;
public int year;
public void setName(String name) {
this.name = name;
}
public void setYear(int year) {
this.year = year;
}
public int getYear() {
return year;
}
public String getName() {
return name;
}
}
接下来,我们在JavaBeanToString里面添加一下代码:
public class JavaBeanToString {
/**
* 对象转string
*/
public static String toString(Object o) throws IllegalAccessException {
if(o!=null) {//判断传过来的对象是否为空
StringBuilder sb = new StringBuilder("[");//定义一个保存数据的变量
Class cs = o.getClass();//获取对象的类
Field[] fields = cs.getDeclaredFields();//反射获取该对象里面的所有变量
for (Field f : fields) {//遍历变量
f.setAccessible(true);//强制允许访问私有变量
Object value = f.get(o);//获取传递过来的对象 对应 f 的类型
value = value == null ? "null" : value;//判断获取到的变量是否为空,如果为空就赋值字符串,否则下面代码会异常
sb.append(f.getName() + ":\"" + value.toString() + "\" ");// f.getName():获取变量名;value.toString():变量值装String
}
sb.append("]");
return sb.toString();
}else{
return "null";
}
}
}
最后就是调用我们的代码的时候:
public static void main(String[] args){
try {
Bean bean=new Bean();
bean.setYear(19);
bean.setName("嫩嫩的猿");
String beanString=JavaBeanToString.toString(bean);//转String
System.out.println(beanString);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
运行结果:
以上就是java通过反射机制,来吧一个Bean toString的方法,如果想自己实践一下的童鞋,可以写一个把Bean对象转Json的项目;或者把Bean类里面其他类变量再转成string的项目,我们现在的代码,如果Bean对象里面有其他对象,只能把对象直接toString。
完结!!!
相关文章
- 暂无相关文章
用户点评