接口調用中經(jīng)常會(huì )打印一些參數的值,但是一個(gè)對象的屬性太多,一個(gè)一個(gè)的打印,太麻煩了。
于是就產(chǎn)生了下面的代碼。
public String outObjPropertyString(Object obj)
{
StringBuffer sb = new StringBuffer();
if(null != obj)
{
try {
this.getPropertyString(obj, sb);
}
catch (Exception e) {
logger.log("outObjPropertyString is error " + e.getMessage());
e.printStackTrace();
}
}
return sb.toString();
}
public String getPropertyString(Object entityName, StringBuffer sb) throws Exception {
Class c = entityName.getClass();
Field field [] = c.getDeclaredFields();
Object obj = null;
String classname = "";
Object tempObj = null;
sb.append("------ " + " begin ------\n");
for(Field f : field){
sb.append(f.getName());
sb.append(" : ");
obj = invokeMethod(entityName,f.getName(),f.getType(),null);
if(null != obj)
{
if(obj.getClass().isArray())
{
for (int i=0;i<Array.getLength(obj);i++)
{
tempObj = Array.get(obj, i);
if(tempObj.getClass().isPrimitive())
{
sb.append(tempObj.toString());
}
else if(tempObj instanceof String)
{
sb.append(tempObj.toString());
}
else if(tempObj instanceof Date)
{
sb.append(tempObj.toString());
}
else if(tempObj instanceof Number)
{
sb.append(tempObj.toString());
}
else
{
this.getPropertyString(tempObj , sb);
}
}
}
classname = obj.getClass().getName();
if(classname.indexOf("com.cignacmb.core.model.") > -1)
{
this.getPropertyString(obj , sb);
}
}
/*if (f.getType() == Address.class)
{
this.getPropertyString(obj , sb);
}*/
sb.append(obj);
sb.append("\n");
}
sb.append("------ " + " end ------\n");
return sb.toString();
}
public Object invokeMethod(Object owner, String methodName, Class fieldType, Object[] args) throws Exception{
Class ownerClass = owner.getClass();
methodName = methodName.substring(0, 1).toUpperCase() + methodName.substring(1);
Method method = null;
try {
if(fieldType == boolean.class)
{
method = ownerClass.getMethod("is" + methodName);
}
else
{
method = ownerClass.getMethod("get" + methodName);
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
//e.printStackTrace();
return " can't find 'get" + methodName + "' method";
}
return method.invoke(owner);
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。