反射获取成员变量并使用的练习

package ClassTest.ClassFieldsTest;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;

/**
* FileName: ReflectDemo02
* Author: lps
* Date: 2022/4/11 18:49
* Sign:刘品水 Q:1944900433
*/
public class ReflectDemo02 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchFieldException {
Class<?> c = Class.forName("ClassTest.ClassTest01.Student");
Constructor<?> con = c.getConstructor();
Object obj = con.newInstance();
System.out.println(obj);

Field namefield = c.getDeclaredField("name");
namefield.setAccessible(true);
namefield.set(obj,"刘品水");
System.out.println(obj);

Field agefield = c.getDeclaredField("age");
agefield.setAccessible(true);
agefield.set(obj,21);
System.out.println(obj);

Field adressfield = c.getDeclaredField("adress");
adressfield.setAccessible(true);
adressfield.set(obj,"南京");
System.out.println(obj);

}
}

 

posted @ 2022-04-11 19:29  刘品水  阅读(23)  评论(0编辑  收藏  举报