使用反射设置好了私有属性,在不使用setAccessible(true)时候,为什么不能使用demo.getName()方法获取属性?
public class Test{
public static void main(String [] args)
{
Class clazz = Class.forName("com.test.Demo");
Demo demo = (Demo)clazz.newInstance();
//f.setAccessible(true);
Field f = clazz.getDeclaredField("name");
f.set(demo,"zhangsan");
System.out.println(test1.getName()); //
}
}
Demo类(com.test包)如下
Demo.java
public class Demo {
private String name;
private int id;
private double salary;
public Demo(String name, int id, double salary) {
super();
this.name = name;
this.id = id;
this.salary = salary;
}
public Demo(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}