62,620
社区成员
发帖
与我相关
我的任务
分享
import java.lang.reflect.Method;
public class ReflectTest {
public static void main(String[] args) {
try {
Class cls = Class.forName("Student");
// 不能使用Integer.class代替int.class
Method setMethod = cls.getDeclaredMethod("setAge",int.class);
setMethod.invoke(cls.newInstance(), 15);
Method staticMethod = cls.getDeclaredMethod("hi",int.class,String.class);
staticMethod.invoke(cls,20,"chb");//这里不需要newInstance
// staticMethod.invoke(cls.newInstance(),20,"chb");
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
}
class Student {
private int age;
private String name;
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 static void hi(int age, String name) {
System.out.println("大家好,我叫" + name + ",今年" + age + "岁");
}
}