gpt4 book ai didi

java - 使用 Google Guice 使用字符串文字检索实例

转载 作者:行者123 更新时间:2023-11-30 03:53:36 25 4
gpt4 key购买 nike

我有多个模块,其服务接口(interface)绑定(bind)到其相应的类型,并且我可以使用

获取实例
injector.getInstance(MyServiceInterface.class) 

我想使用

检索实例
injector.getInstance("MyServiceInterface")

即字符串文字而不是类类型

我怎样才能实现这个目标?

为了进一步阐述我的问题 - 我可以使用 Class.forName(literal) 调用从字符串文字中检索 Class 对象,然后使用它通过注入(inject)器检索实例。 getInstance(clsInstance) 。

检索在基本服务类型接口(interface)中收到的实例后,我需要使用反射来调用服务对象的方法。

so Service serv = Injector.getInstance(MyCustomService.class)

现在我需要通过反射调用 MyCustomService 中存在的 myCustomMethod(),因为此调用程序是通用的,并且旨在与多个服务一起使用,而无需了解其实际类型。

当我反射性地调用此实例上的方法时,我还需要在服务接口(interface)上配置的方法拦截器以透明方式调用。

最佳答案

虽然我不确定 Guice 本身是否有内置功能,但您可以尝试获取相关的 Class<?>反对自己。

大致如下:

Class<?> myServiceInterfaceClass = Class.forName("path.to.MyServiceInterface");
injector.getInstance(myServiceInterfaceClass);

但这确实要求当前的类加载器可以访问该特定类等。

关于java - 使用 Google Guice 使用字符串文字检索实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807921/

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