注浆DataSource类来演示给空

问题描述:

我试图注入DataSource类用匕首2 Presenter,但数据源是空。注浆DataSource类来演示给空

的代码如下:

public class MainPresenter implements MainMVP.Presenter { 

public static final String TAG = "MAIN-PRESENTER"; 

@NonNull 
private MainMVP.View mainView; 

@Inject 
DataSource dataSource; 

public MainPresenter(@NonNull MainMVP.View mainView) { 
    this.mainView = mainView; 

    Log.i(TAG, "MainPresenter init"); 
    DaggerDataComponent.builder() 
      .dataModule(new DataModule()) 
      .build(); 
} 

@Override 
public void onButtonClick() { 
    if (dataSource != null) { 
     mainView.showData(dataSource.getReleaseString()); 
    } 
} 

} 

如果我删除,在数据源检查空我得到一个NullPointerException的条件。任何人都可以帮忙吗?构造函数不是构建DataComponent的正确地方吗?

您建立您的成分,但你似乎并不使用它是实际。

DataCompontent component = DaggerDataComponent.builder() 
      .dataModule(new DataModule()) 
      .build(); 
component.inject(this); 

,并添加

void inject(MainPresenter presenter); 

DataComponent接口。


至于你的问题,如果这是你构建组件的正确位置:我们不能真正回答这个问题。这强烈依赖于您的代码体系结构。

Here's a nice example of MVP + dagger2 architecture.也许尝试以下这一点。