利用Java反射机制对象属性名/属性值
直接上代码,不懂的地方可以去查看api
//java反射机制获取对象所有属性,并拼接成字符串
public String splicingString(Object o){
String str = “”;
String[] fieldNames=this.getFiledName(o);
for(int i=0 ; i< fieldNames.length ; i++)\{
if(i == (fieldNames.length-1))\{
str = str + "\\t"+this.getFieldValueByName(fieldNames\[i\], o)+"\\r";
\}else\{
str = str + "\\t"+this.getFieldValueByName(fieldNames\[i\], o)+" ,";
\}
\}
return str;
}
//获取对象所有属性名
private String[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
//根据对象属性名获取属性值
private Object getFieldValueByName(String fieldName, Object o) {
try \{
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class\[\] \{\});
Object value = method.invoke(o, new Object\[\] \{\});
return value;
\} catch (Exception e) \{
e.printStackTrace();
return null;
\}
}
还没有评论,来说两句吧...