package ml.css.pack;
public class Person {
private int age;
private String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person() {
}
public void send(String halo){
System.out.println(halo);
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
package ml.css.pack;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class JavaReflectDemo1 {
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, ClassNotFoundException {
Class<?> cls=Class.forName("ml.css.pack.Person");
String attribute="name";
String value="张三";
int age=11;
Object obj=cls.getDeclaredConstructor().newInstance();
String setMethodName="setName";
String setAgeM="setAge";
String getName="getName";
String getAge="getAge";
Method method=cls.getDeclaredMethod(setMethodName,String.class);
Method method1=cls.getDeclaredMethod(setAgeM,int.class);
Method method2=cls.getDeclaredMethod(getName);
Method method3=cls.getDeclaredMethod(getAge);
method1.invoke(obj,age);
method.invoke(obj,value);
String name=(String) method2.invoke(obj);
System.out.println(name);
int age1=(int) method3.invoke(obj);
System.out.println(obj);
}
}