进行了如下的实验
import java.lang.reflect.Field;
public class User {
private String name;
private Integer age;
private Double height;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
public static void main(String[] args) {
User user1 = new User();
try {
Field field = User.class.getDeclaredField("name");
//setAccessible这行代码把对象上的name字段设置为可访问
System.out.println("Modifier before modify:"+field + " " +field.getModifiers());
field.setAccessible(true);
System.out.println("Modifier after modify:"+field + " " +field.getModifiers());
// 设置该user1的name属性
field.set(user1, "zhangsan");
System.out.println(user1.getName());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出结果为
Modifier before modify:private java.lang.String com.huawei.ebus.field.test.test1.User.name 2
Modifier after modify:private java.lang.String com.huawei.ebus.field.test.test1.User.name 2
zhangsan
Process finished with exit code 0
标签:反射,java,name,Field,private,field,User,public,String
来源: https://blog.csdn.net/a1510841693/article/details/87888816