public class VisibleList<T> extends ArrayList<T> {
@Override
public String toString() {
String result = "\r\n[";
for (T obj : (ArrayList<T>)this) {
result += "{";
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
try {
Method method = obj.getClass().getDeclaredMethod(
"get" + StringUtil.upperFirstLetter(field.getName()));
String value = (String) method.invoke(obj, null);
result += "'" + field.getName() + "':'" + (value == null ? "" : value) + "',";
} catch (Exception e) {
e.printStackTrace();
}
}
result += "},\r\n";
}
result += "]";
return result;
}
}
public static String upperFirstLetter(String str) {
String firstLetter = str.charAt(0) + "";
firstLetter = firstLetter.toUpperCase();
return firstLetter + str.substring(1);
}