目前流行的 Perl、Python、Ruby 等都是动态语言,所谓动态是指在程序运行期间可以改变程序结构和变量类型。Java 并不具备这点,所以Java不是动态语言。不过,尽管 Java 不是动态语言,但利用它的 Reflection(反射)机制同样可以在程序运行期间得到 Class 的名称,构造并生成其实例。利用 Reflection 我们可以为 fields(属性)赋值,调用其 method。
在《Java反射(一)》一文中,我们简单了解了利用 Reflection 机制在程序运行期间生成 Class 实例,今天我们仍然简单地了解一下,利用 Reflection 机制为动态调用 method。
Class 对象的 getMethod 方法可以返回该 Class 表示的类(包括父类或接口)所声明的所有公共方法的 Method 数组。它有一个重载方法 getMethod(String name, Class... parameterTypes),该方法返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。name 参数是一个 Strin...