public class Test04 {
public static void main(String[] args) throws NoSuchFieldException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
//通过反射创建对象
Class<?> aClass = Class.forName("Reflection.Student");
//获取对象有参构造器
Constructor<?> declaredConstructor = aClass.getDeclaredConstructor(int.class, int.class, String.class);
//设置访问对象私有属性
declaredConstructor.setAccessible(true);
Student student = (Student) declaredConstructor.newInstance(1, 24, "蒋文涛");
System.out.println(student);
//获取私有方法
Method setName = aClass.getDeclaredMethod("setName", String.class);
//执行对象方法
setName.invoke(student, "naruto");
System.out.println(student);
}
}
@TableName("db_student")
class Student {
@TableField(columnName = "db_id", type = "bigint", length = 20)
private int id;
@TableField(columnName = "db_age", type = "int", length = 3)
private int age;
@TableField(type = "varchar", length = 20)
private String name;
public Student() {
}
public Student(int id, int age, String name) {
this.id = id;
this.age = age;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", age=" + age +
", name='" + name + '\'' +
'}';
}
}
通过反射创建对象,执行对象中的方法
最新推荐文章于 2023-08-02 15:04:51 发布