import org.junit.Test;
import java.lang.reflect.Field;
/**
* @author
* @date 2021/4/3 20:23
*/
public class ReflectionTest2 {
@Test
public void filedtest() throws Exception {
//获取class类
Class<User> userClass = User.class;
//创建类的实例
User user = userClass.newInstance();
//获取指定变量名的属性
Field sex = userClass.getField("sex");
//修改变量属性-只能改public
sex.set(user,true);
//获取变量属性
System.out.println(sex.get(user));
}
@Test
public void filedtest2() throws IllegalAccessException, InstantiationException, NoSuchFieldException {
//获取class类
Class<User> userClass = User.class;
//创建类的实例
User user = userClass.newInstance();
//获取指定变量名的属性-此时为私有属性
Field name = userClass.getDeclaredField("name");
//更改私有属性需要加此方法
name.setAccessible(true);
//修改变量属性-只能改public
name.set(user,"小明");
//获取变量属性
System.out.println(name.get(user));
}
}
通过反射获取类中的属性
最新推荐文章于 2023-08-04 10:19:10 发布