问题标签 [assisted-inject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
43 浏览

scala - Guice Assisted-Injection 如何选择要绑定的对象

我已经在 Scala 中实现了 Guice 辅助注入。在下面我的简化示例中,它注入名为“config”的 Config 对象,而不是名为“dataSourceConfig”的 Config 对象。

由于没有明确引用通过辅助注入的参数,它如何知道要注入哪个对象?

显然,我可以解决这个问题,但我更愿意了解这里发生了什么。

提前致谢。

0 投票
1 回答
852 浏览

java - Guice AssistedInject 找不到匹配的构造函数

我刚开始学习Guice,但我已经遇到了一个问题。我有PlayerFactory一个实现的接口BlackjackPlayer

PlayerFactory.java

BlackjackPlayer.java

播放器类

我想使用 Guice 辅助注入来创建Player. 以前我这样做如下:

我知道这是错误的方式,因为我收到错误消息:

我尝试添加构造函数Player(String name)Player(String name, boolean isDealer)但没有帮助。有人知道我应该怎么做才能解决这个问题吗?

提前致谢!

0 投票
1 回答
2308 浏览

dagger-2 - 错误:找不到符号 @dagger.Module(包括 = {InflationInject_ViewModule.class})

我尝试在我的项目中AssistedInject使用 Dagger 2 ( https://github.com/square/AssistedInject ) 实现 Jake Wharton's。

我的代码与https://github.com/square/AssistedInject/tree/master/inflation-inject-sample/src/main/java/com/example几乎相同,但出现错误:

错误:找不到符号 @dagger.Module(包括 = {InflationInject_ViewModule.class})

似乎ViewModule生成的代码不知道在哪里可以找到InflationInject_ViewModule

我的 build.gradle 的相关位是

我已经检查InflationInject_ViewModule过生成的代码中确实存在(在build/generated/source/kapt/devDebug/com/project/di/,所以也许这与编译器查找源集/生成的代码的位置有关。

有什么建议么?

0 投票
1 回答
868 浏览

android - Dagger 2 的 AssistedInject 是如何工作的?

Square的AssitedInject库实际上是一个生成Dagger 2模块的注释处理器。Dagger 2 也是一个注释处理器。

而且据我所知,没有办法控制处理器执行的顺序

在此示例中(请参见下面的代码段),您可以看到模块依赖于由 AssistedInject 生成的类AssistedInject_MainModule。因此,如果 Dagger 2 将首先运行,则构建应该会失败,因为此时AssistedInject_MainModule不存在。

但是可以编译。它是如何工作的?

0 投票
0 回答
1125 浏览

java - Guice 辅助注入 - java.lang.IllegalStateException:zip 文件已关闭

我在我的 spigot 插件中使用 Guice 的辅助注入时遇到问题,并且似乎无法缩小问题范围。这是我得到的错误:

这是我的活页夹类:

当我注释掉安装行时,错误消失了。那条线使用这个工厂类

其中声明了在创建此类对象时需要手动提供的参数:

ConfigAccessFactory是另一个辅助注入的工厂类

在这里使用:

最后,DestinyMC依赖是 spigot 插件的主类:

我不太确定我做错了什么,但我对 Guice 还很陌生,所以我很可能误解了一些东西。另外,如果有更好的方法可以做到这一点,请告诉我。谢谢您的帮助。

0 投票
1 回答
252 浏览

java - 什么是 Spring Boot 的 @Assisted 版本

我想知道如何将 Guice 的@Assisted注释转换为 Java 中的 Spring Boot。例如我有这个代码:

例如,您将拥有:

然后你会有:

和:

我知道如何转换@Injectand @Named,但我一直在做一些研究,@Assisted但找不到任何东西?可能吗?如果是这样,我会怎么做?

0 投票
1 回答
266 浏览

java - 如何注入在 Guice 中使用辅助注入创建的对象?

我正在尝试将具有运行时变量的对象传递给另一个对象。如何使用 Guice 实现这一目标?我是依赖注入的新手。

我想创建几个 A 对象(它们的数量在运行时决定)以及使用 A 对象的许多 B 对象。但首先让我们从他们两个中的一个对象开始。

感谢您的帮助。

0 投票
1 回答
773 浏览

android - Dagger2.10+:在具有运行时依赖的 Fragment/Activity 中注入 ViewModel

对于ViewModels只有编译时依赖项,我使用ViewModelProvider.Factoryfrom Architecture 组件,如下所示:

在我ActivityFragment我得到ViewModel以下方式:

这工作正常,直到我ViewModel需要一个仅在运行时可用的依赖项

场景是,我有一个列表Product,我在RecyclerView. 对于每一个Product,我都有ProductViewModel

现在,ProductViewModel需要各种依赖项,例如 等ResourceProvider,这些依赖AlertManager项在编译时可用,我可以使用Inject它们,constructor也可以Provide使用Module. 但是,除了上述依赖Product项之外,它还需要对象,该对象仅在运行时可用,因为我通过 API 调用获取产品列表。

我不知道如何注入仅在运行时可用的依赖项。所以我现在正在做以下事情:

ProductsFragment.kt

ProductsAdapterProductViewModel将与list_item_products布局绑定。

正如我在代码中的注释中提到的,我不想创建ProductViewModel自己,而是只希望从匕首中获得它。我也相信正确的方法是将直接注入.ProductsAdapterFragmentProductProductViewModel

任何实现这一目标的指南或方向都会非常棒。

0 投票
2 回答
967 浏览

android - Dagger injection to Workamanager AssistedInject_AppAssistedInjectModule

I want to inject repositories and others in the workmanager. Since workmanager is and Android Component i cannot just inject stuff in the construcotr but i have to make a Factory class. So i found an example on Medium and i followed it. I have the dependencies

#xA;

Then i have the WorkManager Module where i bind my WorkerClass Factory

#xA;

WorkManagerComponent

#xA;

And the Factories

#xA;

And the Application class where i want to build the DaggerComponent

#xA;

So my WorkManager class is like

#xA;

On build Project i get multiple errors. But the first two errors seems to be the real problem. I cannot understand what it maybe going wrong. Here they are.

#xA;
0 投票
1 回答
34 浏览

java - 辅助注入根据运行时检查注入不同的依赖项

我有一个应用程序类“Application”,一个由“Impl1”和“Impl2”扩展的抽象类“AbstractClass”。应用程序类根据接收到的输入获取 impl1 或 impl2 以执行某些任务。

目前我将这两个类都注入到应用程序类中,如下所示。然后根据输入,我要求 impl1 或 impl2 执行任务。

但是,有什么方法可以使用辅助注入或类似概念来仅注入所需的依赖项,例如输入是data1,我只注入 impl1 而不是 impl2.??