package star.july.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
//调用类的普通方法
public class FiledReflect {
@Test
public void test1() throws Exception{
Class stuCla = Class.forName("star.july.entity.Student");
Object obj = stuCla.newInstance(); //创建类对象
//获取私有的属性名称
Field fieldName = stuCla.getDeclaredField("name");
//暴力反射
fieldName.setAccessible(true);
System.out.println(fieldName); //输出:private java.lang.String star.july.entity.Student.name
//设置属性值
fieldName.set(obj, "小红");
System.out.println(obj); //输出:Student [name=小红, age=0]
//获取属性的值
System.out.println(fieldName.get(obj)); //输出:小红
//获取所有的属性名称
Field[] fields = stuCla.getDeclaredFields();
for(Field f : fields){
System.out.println(f);
//输出:private java.lang.String star.july.entity.Student.name
//private int star.july.entity.Student.age
}
}
}
Students类:
package star.july.entity;
import java.io.Serializable;
public class Student extends Person<Cat> implements Serializable{
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student( int age) {
super();
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}