首先我们来看一个类实例 import java.util.ArrayList; public class learnToStringBuilder { private Integer age; private String name; private ArrayList<String> friends; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public ArrayList<String> getFriends() { return friends; } public void setFriends(ArrayList<String> friends) { this.friends = friends; } @Override public String toString() { return "learnToStringBuilder [age=" + age + ", friends=" + friends + ", name=" + name + ", toString()=" + super.toString() + "]"; } } 接下来我们要来输出类中的所有域的类型及域的字段 import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; public class testToStringBuider { public static void main(String args[]) { learnToStringBuilder lea = new learnToStringBuilder(); lea.setAge(22); lea.setName("lin"); lea.setFriends(new ArrayList<String>(Arrays.asList("A", "B", "C", "D"))); Class<learnToStringBuilder> c = learnToStringBuilder.class; //用一个域数组来获得类中所有域(包括私有的) Field[] fields = c.getDeclaredFields(); for(Field ff:fields){ System.out.println(ff);//属性的类型和字段 System.out.println(ff.getType());//属性类型 } System.out.println(c.getName());//获得类名 } } 与之类似的还有类方法提取器,用Method[] 接受 用 getMethods获取,方法同上