gpt4 book ai didi

java - 如何动态调用bean的方法

转载 作者:行者123 更新时间:2023-11-29 04:13:44 27 4
gpt4 key购买 nike

我使用 spring boot,像这样从数据库查询:

@Repository
public interface MyRepository extends CrudRepository<MyEntity, Integer> {
List<MyEntity> findAllByIdIn(List<Integer> ids);
}

我想动态地调用这个方法“findAllByIdIn”:

Object bean = context.getBean("myRepository");
bean.getClass().getMethod("findAllByIdIn").invoke(bean, ids);

我有一个异常(exception):

java.lang.NoSuchMethodException: com.sun.proxy.$Proxy145.findAllByIdIn()

如何调用该方法?

最佳答案

getMethod接受 2 个参数。第一个是方法名,第二个是方法参数类型的可变参数。

您的代码尝试获取不带参数的 findAllByIdIn 方法,但您的存储库没有它。

所以解决方法是:

bean.getClass().getMethod("findAllByIdIn", List.class)

关于java - 如何动态调用bean的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53590580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com