以下为思维导图
幕布思维导图地址
//获取构造方法
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class Text13 {
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Class<Students> c = Students.class;//创建学生类的Class对象
Constructor<Students> con = c.getConstructor(String.class,int.class,String.class);//获取构造方法
Object obj = con.newInstance("Hello World",01,"河北");//构造对象
System.out.println(obj);//输出
}
}
//获取成员变量
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
public class TextDemo {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchFieldException {
Class<Students> c = Students.class;//创建学生类的Class对象
Constructor<Students> con = c.getConstructor();
Object students = con.newInstance();//创建实例
Field nameField =c.getField("name");//获取成员变量
Field ageField = c.getField("age");
Field address = c.getField("address");
nameField.set(students,"Hello World");//设置成员变量
ageField.set(students,10);
address.set(students,"河北");
System.out.println(students);//输出
}
}
//获取成员方法
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class MethodDemo {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Class<?> c = Class.forName("路径");//创建学生类的Class对象
Constructor<?> con = c.getConstructor();
Object obj = con.newInstance();//创建实例
Method method1 = c.getMethod("method1");
method1.invoke(obj);//获取方法并运行,无参数无返回值
Method method2 = c.getMethod("method2",String.class);
method2.invoke(obj,"112");//获取方法并运行,带参
Method method3 = c.getMethod("method3");
System.out.println(method3.invoke(obj));//获取方法并运行,有返回值
}
}
//所有类用到的Students类
public class Students {
public int age;
public String name;
public String address;
public Students() {
}
public Students(int age, String name, String address) {
this.age = age;
this.name = name;
this.address = address;
}
public void method1(){
System.out.println("method1被调用");
}
public void method2(String a){
System.out.println("method2被调用,参数是"+a);
}
public String method3(){
return "method3被调用";
}
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;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Students{" +
"age=" + age +
", name='" + name + '\'' +
", address='" + address + '\'' +
'}';
}
}