调试小工具 实例 数据 打印

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class BeanValueFetcher {

public String getFieldValues(Object obj) throws IllegalArgumentException,
IllegalAccessException {
String retVal = "";
Field fieldlist[] = obj.getClass().getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
retVal += fld.getName() + " = " + getValue(fld, obj) + "\n";
}

return retVal;
}

private String getValue(Field fld, Object obj)
throws IllegalArgumentException, IllegalAccessException,
SecurityException {

String retVal = null;
Object retObj = null;
String type = fld.getType().toString();
String name = fld.getName();

String modifier = Modifier.toString(fld.getModifiers());

if (modifier.equals("public")) {
if (type.equals("int")) {
retVal = String.valueOf(fld.getInt(obj));
} else if (type.equals("short")) {
retVal = String.valueOf(fld.getShort(obj));
} else if (type.equals("long")) {
retVal = String.valueOf(fld.getLong(obj));
} else if (type.equals("boolean")) {
retVal = String.valueOf(fld.getBoolean(obj));
} else if (type.equals("float")) {
retVal = String.valueOf(fld.getFloat(obj));
} else if (type.equals("double")) {
retVal = String.valueOf(fld.getDouble(obj));
} else if (type.equals("char")) {
retVal = String.valueOf(fld.getChar(obj));
} else if (type.equals("byte")) {
retVal = String.valueOf(fld.getByte(obj));
} else // if( type.equals("class java.lang.String"))
{
retObj = fld.get(obj);
}
} else {
String firstChar = String.valueOf(name.charAt(0));
firstChar = firstChar.toUpperCase();

String methodName = "get" + firstChar
+ name.substring(1, name.length());
Class<?> clz = obj.getClass();
Method method;
try {
method = clz.getMethod(methodName);
retObj = method.invoke(obj);
} catch (NoSuchMethodException e1) {
e1.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}

retVal = retObj == null ? "" : retObj.toString();
return retVal;
}

@SuppressWarnings("unchecked")
public static void main(String[] args) {

try {

System.out.println(new BeanValueFetcher()
.getFieldValues(new String()));

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

你可能感兴趣的:(java)