很初级的代码,记在这里方便以后复制粘贴..... 不过也有两个要注意的地方,一个是应该使用getDeclaredFields来获取所有的属性而非getFields,后者只会获取访问权限为public的属性;另一个是在访问private字段之前要field.setAccessible(true)一下否则会抛IllegalAccessException的异常。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| @Override public String toString() { StringBuffer sb = new StringBuffer(); //获取所有属性 Field[] fields = this.getClass().getDeclaredFields(); sb.append("["); for (Field field : fields) { sb.append(field.getName() + "="); //把字段设置为public访问属性 field.setAccessible(true); try { if (field.getType().isPrimitive() || field.getType() == String.class) { sb.append(field.get(this)); } else { sb.append(field.get(this).toString()); } } catch (IllegalAccessException e) { sb.append("(Exception)"); } finally { sb.append(";"); } } sb.append("]"); return sb.toString(); }
|