通过反射,获取当前运行时类的属性结构
package com.atguigu.java2;
import com.atguigu.java1.Person;
import org.junit.Test;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class FiledTest {
@Test
public void test1() {
Class clazz = Person.class;
Field[] fields = clazz.getFields();
for (Field f : fields) {
System.out.println(f);
}
System.out.println("**************************");
Field[] declaredFields = clazz.getDeclaredFields();
for (Field f :declaredFields){
System.out.println(f);
}
}
@Test
public void test2(){
Class clazz = Person.class;
Field[] declaredFields = clazz.getDeclaredFields();
for (Field f : declaredFields) {
int modifiers = f.getModifiers();
System.out.print(Modifier.toString(modifiers) + "\t");
Class<?> type = f.getType();
System.out.print(type.getName() + "\t");
String name = f.getName();
System.out.println(name);
}
}
}