繁体   English   中英

使用Guice在方法内部创建对象的正确方法是什么

[英]What is proper way to create objects inside method using Guice

使用Guice在Singleton对象的方法内部创建对象的正确方法是什么?

如果下面有一些类似的代码,创建Class2实例的正确方法是什么? Class1是单例的,每次调用搜索时都需要创建一个Class2的新实例(因此我无法在构造函数字段中注入它……)如果需要,我将重新组织代码。

@Singleton
final class Class1 {

@Inject
private Class1(...){...}

public Class2 search(...){
   Class2 newInstance=...
   return newInstance;
}

}

我想我找到了。 需要为此类实例使用提供程序。 在构造函数中获取类provider,并使用provider.get获取实例。

就像是:

@Singleton
final class Class1 {

Provider<Class2> p;

@Inject
private Class1(Provider<Class2> pParam;...){
p=pParam;
...
}

public Class2 search(...){
   Class2 newInstance=p.get();
   return newInstance;
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM