package cn.qqtheme.framework.entity;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import cn.qqtheme.framework.util.LogUtils;
/**
* JavaBean类
*
* @author 李玉江[QQ:1032694760]
* @since 2014-04-23 16:14
*/
public class JavaBean implements Serializable {
private static final long serialVersionUID = -6111323241670458039L;
/**
* 反射出所有字段值
*/
@Override
public String toString() {
ArrayList<Field> list = new ArrayList<>();
Class<?> clazz = getClass();
list.addAll(Arrays.asList(clazz.getDeclaredFields()));//得到自身的所有字段
StringBuilder sb = new StringBuilder();
while (clazz != Object.class) {
clazz = clazz.getSuperclass();//得到继承自父类的字段
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
int modifier = field.getModifiers();
if (Modifier.isPublic(modifier) || Modifier.isProtected(modifier)) {
list.add(field);
}
}
}
Field[] fields = list.toArray(new Field[list.size()]);
for (Field field : fields) {
String fieldName = field.getName();
try {
Object obj = field.get(this);
sb.append(fieldName);
sb.append("=");
sb.append(obj);
sb.append("\n");
} catch (IllegalAccessException e) {
LogUtils.error(e);
}
}
return sb.toString();
}
}