/**
* 总结:先加载类,然后用getDeclaredField方法获得声明了的字段,
* 然后暴力反射
* set(对象,“设置的字段值”)
* get(字段类型)(对象)
* */
//设置name属性的值
@Test
public void test1() throws Exception{
Person p = new Person();
Class clazz = Class.forName("cn.itcast.reflect.Person");
Field f = clazz.getDeclaredField("name");
f.setAccessible(true);
f.set(p, "xxx");
System.out.println(p.getName());
}
//获取name属性的值
@Test
public void test2() throws Exception{
Person p = new Person();
p.setName("yyyy");
Class clazz = Class.forName("cn.itcast.reflect.Person");
Field f = clazz.getDeclaredField("name");
f.setAccessible(true);
String name = (String) f.get(p);
System.out.println(name);
}
* 总结:先加载类,然后用getDeclaredField方法获得声明了的字段,
* 然后暴力反射
* set(对象,“设置的字段值”)
* get(字段类型)(对象)
* */
//设置name属性的值
@Test
public void test1() throws Exception{
Person p = new Person();
Class clazz = Class.forName("cn.itcast.reflect.Person");
Field f = clazz.getDeclaredField("name");
f.setAccessible(true);
f.set(p, "xxx");
System.out.println(p.getName());
}
//获取name属性的值
@Test
public void test2() throws Exception{
Person p = new Person();
p.setName("yyyy");
Class clazz = Class.forName("cn.itcast.reflect.Person");
Field f = clazz.getDeclaredField("name");
f.setAccessible(true);
String name = (String) f.get(p);
System.out.println(name);
}
本文介绍如何使用Java反射机制来设置和获取对象属性值。通过Class类的forName方法加载指定类,利用getDeclaredField方法获取私有属性,并通过setAccessible设置访问权限,最后使用set和get方法来修改和读取属性值。
1万+

被折叠的 条评论
为什么被折叠?



