0

我有一个 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 对象的数据源为空。如何通过 RoboGuice 按需创建新对象以确保它具有依赖关系?

if(customer.newInstance().getDatasource() == null){
    //This gets logged
    Log.d("DEBUG", "2nd customer's datasource is null");
}

任何帮助将非常感激。

4

2 回答 2

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());
    }
}
于 2013-05-10T05:17:59.030 回答
0

您可以尝试以下方式为您的客户类创建一个新对象,

Customer newObject; 

newObject = newInstance();
于 2013-05-10T05:10:59.873 回答