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;
}