关于Guice的问题.我还在学习它,但我能理解基础知识.
这个问题已经在网上问了几次,但从来没有一个具体的答案(没有我能找到).
说我的情况就像在图片上(类似的例子是在网上).

public class Dog {}
public class Walk implements Walkable {
private final Dog dog;
private final boolean leash;
@Inject
public Walk(Dog dog, @Assisted boolean leash) {
this.dog = dog;
this.leash = leash;
}
public void go() {
}
}
public interface Walkable {
void go();
}
public interface WalkFactory {
Walk create(boolean leash);
}
public class AssistedMain {
public static void main(String[] args) {
Injector i = Guice.createInjector(new AbstractModule() {
protected void configure() {
install(new FactoryModuleBuilder().
implement(Walkable.class, …Run Code Online (Sandbox Code Playgroud) 我有以下问题:
@Inject
MyClass(Service service) {
this.service = service;
}
public void doSomething() {
service.invokeSelf();
}
Run Code Online (Sandbox Code Playgroud)
我有一个模块
bind(service).annotatedWith(Names.named("serviceA").to(ServiceAImpl.class);
bind(service).annotatedWith(Names.named("serviceB").to(ServiceBImpl.class);
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我想让用户通过命令行参数动态选择运行时基础上的注入.
public static void Main(String args[]) {
String option = args[0];
.....
}
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?我是否必须创建多个模块才能执行此操作?