- public class Test{
-
- public static void main(String[] args) throws Exception {
- Person p = new Person();
- Class cls = p.getClass();//获取Person的字节码
- //获取setName()方法,需要传入参数为String
- Method method1 = cls.getMethod("setName", String.class);
- method1.invoke(p, "小明");//关联p,输入“小明”并执行该方法
- //获取getName()方法,无参则设为null
- Method method2 = cls.getMethod("getName", null);
- String name = (String) method2.invoke(p, null);//invoke返回的类型为Object
- System.out.println(name);
- //获取静态方法,由于静态方法只依赖与类,所以不需要提供具体的实例
- Method method3 = cls.getMethod("show", int.class);
- // method3.invoke(p, 1);提供具体实例p也可通过编译
- method3.invoke(null, 1);
-
- }
- }
- class Person{
- public String name;
- public String getName(){
- return name;
- }
- public void setName(String name){
- this.name = name;
- System.out.println("设置name值为:" + name);
- }
- public static void show(int i){
- System.out.println("这是一个静态方法:" + i);
- }
- }
复制代码
|
|