获取运行时类的属性
public class TestFields {
/**
* 获取运行时类属性
*/
@Test
public void test1(){
//获取运行时类
Class clazz = Person.class;
//1、getFields()只能获取到运行时类及其父类中声明为public的属性
Field[] fields = clazz.getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(fields[i]);
}
//2、getDeclaredFields():能够获取运行时类本身中声明的所有属性
Field[] fields1 = clazz.getDeclaredFields();
for (Field f:fields1) {
System.out.println(f.getName());
}
}
/**
* 权限修饰符,变量类型,变量名
* 获取属性的各个部分的内容
*/
@Test
public void test2(){
Class clazz = Person.class;
Field[] fields = clazz.getDeclaredFields();
for (Field f:fields) {
//1、获取每个属性的权限修饰符
int i = f.getModifiers();
String str = Modifier.toString(i);
System.out.print(str +"