欢迎来到天天文库
浏览记录
ID:16860180
大小:14.57 KB
页数:4页
时间:2018-08-25
《发射实现tostring方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在Java的开发过程中,编写对应数据库表信息的entity是必须的,很多时候为了调试我们很有必要重写entity的toString方法,为我们返回有用的entity信息,一般是希望输出entity的属性名对应的属性值。toString方法可以是这个样子的:@OverridepublicStringtoString(){return"username:"+this.getUsername()+"&age:"+this.getAge();}没什么,无非是手动拼装一把而已。不过有的时候项目大了,几百个entity都去手动拼装一把,实在有点让人心烦,更
2、何况有些变态的entity一来就是百十个属性,对于这种情况,这样拼装无疑是枯燥而且耗时的。有没有简单一点的方法呢?小弟近来想到一个比较拙劣的方法,分享一把,有需要的可以看看,一个简单的工具类:packagecom.huawei.zhangbo;importjava.lang.reflect.Field;importjava.lang.reflect.Method;publicclassToStringUtil{publicstaticStringtoString(Entityentity,String...fieldName){Classcls
3、=entity.getClass();StringBufferbuffer=newStringBuffer(cls.getSimpleName()+":");try{//不获取私有方法Method[]methods=cls.getMethods();if(null!=fieldName&&fieldName.length!=0){for(Methodmethod:methods){Stringmn=method.getName();for(Stringfn:fieldName){20currencydeposit,weprescribeapas
4、sonaregularbasis,qilucardaccountonaregularbasis),certificatebondsandsavingsbonds(electronic);3.notdrawnonabanksavingscertificate,certificatebondsapplyformortgageloans,acceptingonlythelenderif(mn.equalsIgnoreCase("get"+fn)){Stringvalue=method.invoke(entity).toString();buffer.
5、append(mn+"="+value+"&");}}}}else{//得到所有fieldField[]fields=cls.getDeclaredFields();for(Methodmethod:methods){Stringmn=method.getName();for(Fieldfield:fields){Stringname=field.getName().toString();if(mn.equalsIgnoreCase("get"+name)){Stringvalue=method.invoke(entity).toString(
6、);buffer.append(name+"="+value+"&");}}}}}catch(Exceptione){e.printStackTrace();}returnbuffer.substring(0,buffer.length()-1).toString();}}小小的解释一把,非常简单,该方法有两个参数,Entity,String...,Entity是我自己写的一个空接口,和Serializable接口一样起一个标识的作用,标识实体类,很明显如果你的实体类不实现这个接口就不能使用我的工具类。我这样搞有我20currencydepos
7、it,weprescribeapassonaregularbasis,qilucardaccountonaregularbasis),certificatebondsandsavingsbonds(electronic);3.notdrawnonabanksavingscertificate,certificatebondsapplyformortgageloans,acceptingonlythelender的理由,如果闲麻烦完全可以用Object取代之。第二个参数String...,即String类型的参数,这样的写法具有灵活性,你可以不传
8、这个参数,也可以传一个或者多个,最终Java会把你的参数封装成String类型的数组,为什么不直接传String类型的数组,还搞这些花里胡哨的,已经说
此文档下载收益归作者所有