我无法使用反射直接在我的 User bean 类的 Setter 方法中设置值
我只能访问那些 getter 方法,但我不能在 User Bean Class 的 Setter 方法中设置值。
java -如何在java method-by-reflection-in-java中通过反射调用setter方法
//------->This My UserClass
public class User {
private String name;
private int age;
private String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
private int getAge() {
return age;
}
private void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
//------> Then My Main Method
public static void main(String args[])
{
try {
User user = new User();
Method method = User.class.getDeclaredMethod("setName", String.class);
method.setAccessible(true);
method.invoke(user, "Some name");
System.out.println("user.getName() = " + user.getName());
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
}
我想直接调用 Setter 方法并在 Setter 中设置值,更改可以反映在 User Bean setter 方法中。请让我知道这是可能的。
这是因为您的 setName() 方法设置为私有。在该类本身之外,您不能访问该类的任何私有方法。
改成..
public void setName(String name) {
this.name = name;
}
你会很高兴去的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句