- Obtaining Method Objects
- Method Parameters and Return Types
- Invoking Methods using Method Object
反射获取到类的方法是通过类java.lang.reflect.Method
类来完成的。本文将介绍类Method.
获取方法对象
方法对象可以向这样获取:
1 | Class aClass = ...//obtain class object |
methods返回的值是类中所有什么为public的方法。
如果你知道某个方法的参数,你可以获取到特点的方法而不是获取所有的方法。比如例子中你知道方法的名称是doSomething
,它的一个参数是String
类型的,你可以这样获取:
1 | Class aClass = ...//obtain class object |
如果没有这个方法,或者方法对应的参数不是String类型的将会抛出NoSucnMethodException
。
如果你试图获取一个无参的方法你一个传递null
最为参数:
1 | Class aClass = ...//obtain class object |
方法的参数和返回类型
你可以这样获取方法的参数:
1 | Method method = ... // obtain method - see above |
你可以这样获取方法的返回值:
1 | Method method = ... // obtain method - see above |
操作方法
你可以通过使用Method对象来调用对象方法:
1 | //get method that takes a String as argument |
这null
参数表示的是你想调用方法的对象。如果一个方法是静态static
的你应该传递一个null
最为参数,而不是对应的类对象。但是你必须指定你操作的方法的每个参数的确定的值。本例中我使用了一个参数为String类型的方法,所以一个String值parameter-value1
必须指定。