为了方便输出对象,Object类提供了toString()方法。但是该方法的默认值是由类名和哈希码组成的,实用性并不强。通常需要重写该方法以提供更多的信息。本实例使用反射输出类的包、类的名字、类的公共构造方法、类的公共域和类的公共方法。在重写不同类的toString()方法时调用该方法就可以避免多次重写toString()方法。实例运行效果如图
编写类StringUtils,在该类中定义了两个方法:toString()方法用于输出类的公共方法、域等信息,main()方法用来进行测试。代码如下:
package com.mingrisoft.reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class StringUtils {
@SuppressWarnings("unchecked")
public String toString(Object object) {
Class clazz = object.getClass();// 获得代表该类的Class对象
StringBuilder sb = new StringBuilder(); // 利用StringBuilder来保存字符串