Java如何获取对象属性及对应值
利用反射获取对象的所有属性及对应的值
1、获取属性名数组
privatestaticString[]getFiledName(Objecto){
Field[]fields=o.getClass().getDeclaredFields();
String[]fieldNames=newString[fields.length];
for(inti=0;i
2、根据属性名获取属性值
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
*/
publicstaticStringobjectToStr(Tt){
Listlist=newArrayList();
String[]fieldNames=getFiledName(t);
for(inti=0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。