您的位置:首页 > 编程语言 > Java开发

Java反射之Method Class.getMethod(String name, Class<?>... parameterTypes)

2017-02-03 15:06 621 查看
Method Class.getMethod(String name, Class<?>... parameterTypes)的作用是获得对象所声明的公开方法

该方法的第一个参数name是要获得方法的名字,第二个参数parameterTypes是按声明顺序标识该方法形参类型。

person.getClass().getMethod("Speak", null);

//获得person对象的Speak方法,因为Speak方法没有形参,所以parameterTypes为null

person.getClass().getMethod("run", String.class);

//获得person对象的run方法,因为run方法的形参是String类型的,所以parameterTypes为String.class

如果对象内的方法的形参是int类型的,则parameterTypes是int.class

本人写了一个例子来帮助大家来理解此方法的作用:

Person类:

package fyh.reflectDemo;

public class Person {

    private String name;

    private int ID;

    public String speed;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getID() {

        return ID;

    }

    public void setID(int iD) {

        ID = iD;

    }

    public Person(String name,int ID){

        this.name = name;

        this.ID = ID;

    }

    public void Speak(){

        System.out.println("Hello! "+"My name is "+name);

    }

    public void run(String speed){

        System.out.println("I can run " + speed+" KM!!!");

    }

    

}

testMain类:

package fyh.reflectDemo;

import java.lang.reflect.Method;

public class testMain {        

    public static void main(String[] args) throws Exception {        

        Person person = new Person("小明",10001);

        person.Speak();

        person.run("10");

        Method m1 = person.getClass().getMethod("Speak", null);        

        Method m2 = person.getClass().getMethod("run", String.class);

        System.out.println(m1);

        System.out.println(m2);

    }

}

此例子的运行结果:



在看不明白API文档说什么的时候,自己动手写一个例子就能明白了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java反射
相关文章推荐