获取了Bean 如何调用有参方法
时间: 2024-02-23 17:00:51 浏览: 50
spring源码12: spring创建Bean
获取了 Bean 对象后,可以通过反射机制调用 Bean 中的方法,包括有参方法。以调用有参方法为例,以下是一种通用的实现方法:
```java
// 获取 Bean 对象
Object bean = applicationContext.getBean("beanName");
// 获取方法对象
Method method = bean.getClass().getMethod("methodName", arg1.getClass(), arg2.getClass(), ...);
// 调用方法
Object result = method.invoke(bean, arg1, arg2, ...);
```
其中,methodName 是要调用的方法的名称,arg1、arg2、... 是方法的参数。需要注意的是,getMethod 方法需要传入参数的类型,如果有多个参数,则需要依次传入每个参数的类型。如果方法中的参数类型不确定,可以使用 Object 类型代替,但需要注意类型转换的问题。
例如,假设有一个名为 UserService 的 Bean,其中有一个名为 addUser 的方法,该方法有两个参数:String 类型的 name 和 Integer 类型的 age。可以通过以下方式调用该方法:
```java
// 获取 Bean 对象
UserService userService = applicationContext.getBean(UserService.class);
// 获取方法对象
Method addUserMethod = userService.getClass().getMethod("addUser", String.class, Integer.class);
// 调用方法
String name = "张三";
Integer age = 20;
Object result = addUserMethod.invoke(userService, name, age);
```
以上代码中,我们首先通过 applicationContext.getBean 方法获取了 UserService 类型的 Bean 对象,然后通过 getMethod 方法获取了 addUser 方法的 Method 对象,最后通过 invoke 方法调用了 addUser 方法,并传入了 name 和 age 两个参数。
阅读全文