package android.support.v7.utils;
import android.widget.TextView;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class GetClassFieldAndValueUtils {
public static String reflect(Object obj) {
StringBuffer sb = new StringBuffer();
sb.append("GetClassFieldAndValueUtils ::");
if (obj == null) return "";
List<Field> fieldList = new ArrayList<>() ;
Class tempClass = obj.getClass();
while (tempClass !=null && !tempClass.getName().toLowerCase().equals("java.lang.object") )
{
fieldList.addAll(Arrays.asList(tempClass .getDeclaredFields()));
tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己
}
// Field[] fields = obj.getClass().getDeclaredFields();
for (int j = 0; j < fieldList.size(); j++) {
try {
fieldList.get(j).setAccessible(true);
// 字段名
System.out.print( fieldList.get(j).getName() + ",");
// 字段值
if ( fieldList.get(j).getType().getName().equals(
java.lang.String.class.getName())|| fieldList.get(j).getType().getName().equals("string")) {
// String type
sb.append(" String :: " + fieldList.get(j).getName() + "," + fieldList.get(j).get(obj)+" ;;; ");
} else if ( fieldList.get(j).getType().getName().equals(
java.lang.Integer.class.getName())
|| fieldList.get(j).getType().getName().equals("int")) {
// Integer type
sb.append(" int :: " + fieldList.get(j).getName() + fieldList.get(j).getInt(obj)+" ;;; ");
}else if( fieldList.get(j).getType().getName().equals(
java.lang.Boolean.class.getName())|| fieldList.get(j).getType().getName().equals("boolean")){
sb.append("boolean :: " + fieldList.get(j).getName() + fieldList.get(j).getBoolean(obj)+" ;;; ");
}
else if( fieldList.get(j).getType().getName().equals(android.widget.TextView.class.getName())|| fieldList.get(j).getType().getName().equals("android.widget.TextView")){
TextView o = (TextView) fieldList.get(j).get(obj);
sb.append( fieldList.get(j).getName() +" :"+o.getText() +" ;;; ");
}else{
sb.append(" "+ fieldList.get(j).getName() +" :"+ fieldList.get(j).get(obj));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sb.toString();
}
}