欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 反射 - 调用任意方法和构造器

程序员文章站 2024-01-20 11:56:28
...

Java 反射 - 调用任意方法和构造器

反射机制使得我们调用任意的方法.

Method 类中有一个 invoke 方法, 允许我们调用包装在该对象中的方法.

Object invoke(Object obj, Object… args)

对于静态方法, 第一个参数可以省略, 也就是设成 null

使用示例

Employee e = new Employee("lalala");
Method m = e.getClass().getMethod("getName");
System.out.println(m.invoke(e));

由于方法会有重载, 所以在使用 getMethod 方法时需要十分小心.

public Method getMethod(String name, Class<?>... parameterTypes)
//输入参数的类型来精确获取某个方法.

可以用类似的方法调用任意的构造器. 将构造器的参数类型提供给 Class.getConstructor 方法, 并把参数值提供给 Constructor.newInstance 方法

Constructor c = Employee.class.getConstructor(String.class);
Employee e = (Employee) c.newInstance("lalala");