先看javabean类:目的使用反射调用私有方法:
package com.imooc.reflect;
public class Student {
private void add(){
System.out.println("增加数据!");
}
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
public Student() {
}
}
main测试方法
public static void main(String[] args) throws Exception {
Class c1=Student.class;
Object obj=(Object)c1.newInstance();
Method add = c1.getDeclaredMethod("add");
add.invoke((Student)obj);
}
这时,就会报Class . can not access a member of class . with modifiers “private” 异常。
解决方案:添加一行代码:add.setAccessible(true);
Method add = c1.getDeclaredMethod("add");
add.setAccessible(true);
add.invoke((Student)obj);
当然最后调用时也可以写成:add.invoke(obj);
本文介绍如何利用Java反射机制调用一个类中的私有方法,并通过示例代码演示了具体的实现步骤,包括解决权限异常的方法。
2495

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



