我有一个Customer类,我已经使用@Inject注释注入了它的依赖项。我想在这个类中创建一个返回类的新实例的方法。
class Customer{
//the DataSource class is annotated with @Singleton
@Inject protected DataSource dataSource;
public DataSource getDatasource(){
return dataSource;
}
public Customer newInstance(){
return new Customer();
}
}
在我的活动中,我通过@Inject注释注入了一个客户。在onCreate()方法中,我通过调用customer.newInstance()来获取另一个Customer实例,但是当我执行以下操作时,第二个Customer对象的数据源为null。如何通过RoboGuice按需创建新对象,确保它具有依赖性?
if(customer.newInstance().getDatasource() == null){
//This gets logged
Log.d("DEBUG", "2nd customer's datasource is null");
}
非常感谢任何帮助。
答案 0 :(得分:1)
用以下方法计算出来。
class Customer{
//the DataSource class is annotated with @Singleton
@Inject protected DataSource dataSource;
@Inject protected Injector injector;
public DataSource getDatasource(){
return dataSource;
}
public Customer newInstance(){
return injector.getInstance(getClass());
}
}
答案 1 :(得分:0)
您可以尝试按照以下方式为您的客户类创建新对象
Customer newObject;
newObject = newInstance();