Java如何获取对象属性及对应值
利用反射获取对象的所有属性及对应的值
1、获取属性名数组
privatestaticString[]getFiledName(Objecto){ Field[]fields=o.getClass().getDeclaredFields(); String[]fieldNames=newString[fields.length]; for(inti=0;i2、根据属性名获取属性值
privatestaticObjectgetFieldValueByName(StringfieldName,Objecto){ try{ StringfirstLetter=fieldName.substring(0,1).toUpperCase(); Stringgetter="get"+firstLetter+fieldName.substring(1); Methodmethod=o.getClass().getMethod(getter,newClass[]{}); Objectvalue=method.invoke(o,newObject[]{}); returnvalue; }catch(Exceptione){ logger.error("获取属性值失败!"+e,e); } returnnull; }3、获取属性的数据类型
privatestaticObjectgetFiledType(StringfieldName,Objecto){ Field[]fields=o.getClass().getDeclaredFields(); for(Fieldfield:fields){ if(Objects.equals(fieldName,field.getName())){ returnfield.getType(); } } returnnull; }4、完整代码及其引入的包
packagecom.hao.search; importjava.lang.reflect.Field; importjava.lang.reflect.Method; importjava.text.SimpleDateFormat; importjava.util.ArrayList; importjava.util.Date; importjava.util.List; importjava.util.Objects; importorg.apache.commons.collections.CollectionUtils; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory; importcom.google.common.base.Joiner; publicclassObjectPaseUtils{ privatestaticLoggerlogger=LoggerFactory.getLogger(ObjectPaseUtils.class); /** *@desc将对象转换成指定String *@param*@paramt *@return */ publicstatic StringobjectToStr(Tt){ List list=newArrayList (); String[]fieldNames=getFiledName(t); for(inti=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。