使用反射为类快速生成toString方法
为所处位置类打印出相应toString方法
public static void main(String[] args) throws ClassNotFoundException {
// 静态方法获取当前类名
String classPath = new Object() {
public String getClassName() {
String clazzName = this.getClass().getName();
return clazzName.substring(0, clazzName.lastIndexOf('$'));
}
}.getClassName();
Class classType = Class.forName(classPath);
StringBuilder sb = new StringBuilder("@Override public String toString() {return \"" + classPath + " [");
for (java.lang.reflect.Field f : classType.getDeclaredFields()) {
sb.append(f.getName() + "=\"+" + f.getName() + "+\", ");
}
sb.append("]\";}");
System.out.println(sb.toString().replaceAll("^([\\s\\S]*),\\s([\\s\\S]*)", "$1$2"));
}
本文介绍了一种利用Java反射API来动态生成类的toString方法的方法。该方法能够自动遍历类的所有字段并将其拼接成标准格式的字符串表示形式,便于调试和查看对象状态。
700

被折叠的 条评论
为什么被折叠?



