利用Java反射机制对象属性名/属性值

悠悠 2022-05-28 11:48 336阅读 0赞

直接上代码,不懂的地方可以去查看api

//java反射机制获取对象所有属性,并拼接成字符串

public String splicingString(Object o){
String str = “”;
String[] fieldNames=this.getFiledName(o);

  1. for(int i=0 ; i< fieldNames.length ; i++)\{
  2. if(i == (fieldNames.length-1))\{
  3. str = str + "\\t"+this.getFieldValueByName(fieldNames\[i\], o)+"\\r";
  4. \}else\{
  5. str = str + "\\t"+this.getFieldValueByName(fieldNames\[i\], o)+" ,";
  6. \}
  7. \}
  8. 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) {

  1. try \{
  2. String firstLetter = fieldName.substring(0, 1).toUpperCase();
  3. String getter = "get" + firstLetter + fieldName.substring(1);
  4. Method method = o.getClass().getMethod(getter, new Class\[\] \{\});
  5. Object value = method.invoke(o, new Object\[\] \{\});
  6. return value;
  7. \} catch (Exception e) \{
  8. e.printStackTrace();
  9. return null;
  10. \}

}

发表评论

表情:
评论列表 (有 0 条评论,336人围观)

还没有评论,来说两句吧...

相关阅读