public class Person {
public String name = "刘彦亮";
public int age = 27;
private String sex = "男";
private static int code = 10;
}
/**
* 反射类的字段
*
* @author 刘彦亮
* @version 1.0
*/
public class Demo_colum {
// 反射获取Public字段
@Test
public void test1() throws Exception {
Class clazz = Class.forName("com.java.reflect.Person");
Field f = clazz.getField("name");
// 获取字段的值
Object objValue = f.get(clazz.newInstance());
// 获取字段的类型
Object type = f.getType();
if (type.equals(String.class)) {
String value = (String) objValue;
System.out.println(value);
}
}
// 反射获取Private字段
@Test
public void test2() throws Exception {
Class clazz = Class.forName("com.java.reflect.Person");
Field f = clazz.getDeclaredField("sex");
f.setAccessible(true);
// 获取字段的值
Object objValue = f.get(clazz.newInstance());
// 获取字段的类型
Object type = f.getType();
if (type.equals(String.class)) {
String value = (String) objValue;
System.out.println(value);
}
}
// 反射获取Private static字段
@Test
public void test3() throws Exception {
Class clazz = Class.forName("com.java.reflect.Person");
Field f = clazz.getDeclaredField("code");
f.setAccessible(true);
// 获取字段的值
System.out.println(f.get(clazz.newInstance()));
}
}