package d18_3_1; import java.lang.reflect.Field; import java.util.Arrays; /** * 获取Class对应类所包含的属性的四个方法 * * 运行结果 * [private java.lang.String d18_3_1.Test4.name, protected int d18_3_1.Test4.age, java.lang.String d18_3_1.Test4.sex, public java.lang.String d18_3_1.Test4.email, public int d18_3_1.Test4.tel] * private java.lang.String d18_3_1.Test4.name * [public java.lang.String d18_3_1.Test4.email, public int d18_3_1.Test4.tel] * public java.lang.String d18_3_1.Test4.email */ public class ClassInfo3 { public static void main(String[] args) throws NoSuchFieldException, SecurityException { Class c = Test4.class; // 1、获取所有的属性,不论是否私有 Field[] fs1 = c.getDeclaredFields(); System.out.println(Arrays.toString(fs1)); // 2、获取所有的属性中,指定的属性 (属性名) Field f1=c.getDeclaredField("name"); //区分大小写 System.out.println(f1); // 3、获取所有public属性 Field[] fs2 = c.getFields(); System.out.println(Arrays.toString(fs2)); // 4、获取所有的public属性中,指定的属性 (属性名) //若指定的属性不存在时,会报Source not found.必须是public方法. Field f2=c.getField("email"); System.out.println(f2); } } class Test4 { private String name; protected int age; String sex; public String email; public int tel; }