gpt4 book ai didi

java - 带参数的 Dagger 构造函数注入(inject)

转载 作者:行者123 更新时间:2023-12-01 06:04:40 27 4
gpt4 key购买 nike

我有一个关于 Dagger 构造函数注入(inject)的问题。

如果我要为一个类进行构造函数注入(inject) - 但是,构造函数还需要在运行时接受一个参数。如何从提供的模块注入(inject)下面示例中的“Bar”?

例如:

class Foo {

public static final class Factory {
@Inject Factory() {
}

public Foo create(final DynamicRuntimeObj random) {
return new Foo(random);
}
}

Bar mBar;
DynamicRuntimeObj mRandom;

@Inject
Foo(Bar bar, DynamicRuntimeObj random) {
mBar = bar;
mRandom = random;
}
}

通常,我可以像这样创建对象

Foo foo = new Foo.Factory().create(new DynamicRuntimeObj());

bar 由提供者自动注入(inject)到一个模块中,但 DynamicRuntimeObj 需要在运行时创建。

谢谢!

最佳答案

您必须使用@Provides来实现

@Provides DynamicRuntimeObj provideMyDependency() {
return ... // get that obj from somewhere
}

关于java - 带参数的 Dagger 构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420248/

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