2016-08-12 4 views

答えて

1

あなたはモジュールを使用する場合は、[はい@Injectコンストラクタと

@Module 
public class SomeModule { 
    @Provides 
    Unscoped unscoped() { 
     return new Unscoped(); 
    } 

    @Provides 
    @Singleton 
    Scoped scoped() { 
     return Scoped(); 
    } 
} 

しかしクラスが自動的に何のモジュールはそれのために指定されていない場合でも、あなたのスコープのコンポーネントに追加されます:

@Singleton 
public class Scoped { 
    @Inject 
    public Scoped() { 
    } 
} 

public class Unscoped { 
    @Inject 
    public Unscoped() { 
    } 
} 
0

@Inject注釈がある場合、それは、依存関係の2つの方法で提供することが可能です。コンストラクタ・インジェクションに

@Inject 
    TasksPresenter(TasksRepository tasksRepository, TasksContract.View tasksView) { 
     mTasksRepository = tasksRepository; 
     mTasksView = tasksView; 
    } 
を使用したモジュールで

@Provides 
    TasksPresenter provide TasksPresenter(TasksRepository tasksRepository, TasksContract.View tasksView) { 
     return new TasksPresenter(tasksRepository,tasksView); 
} 

を注釈を提供し使用した

ここで注目すべきことの1つはコンストラクタ注入2つを解決することです事

  • インスタンス化オブジェクト
  • は、グラフをオブジェクトに追加することにより、オブジェクトを提供します。
関連する問題