使うとかなりの不自由感。細かく咀嚼しないと全体は理解できない感じなので、まずはこのタイトルから。細かくシリーズ化してみますが。登場してから10年程度ですが、経緯というか、伝統というか、歴史というか。いうの嫌いだけど、そういうのを理解しようとしないと、その対象に対しての初心者は辛い時期になってるのだろうと思う。それと同じ雰囲気なのでしょう。以下、上記リンクより引用。codes.@Bindsメソッドには、戻り値の型に割り当て可能な型のパラメーターが1つだけ必要ですそのため、1つのパラメーターのみが返され、型の戻り値は通常、指定されたパラメーターオブジェクトのインターフェイスです。言っても、他のヒントは、生成されるコードを減らすのに役立つ「@Provides」の「静的」関数の使用を検討することです。constraints.バインディングを構成するための最も一般的な構成要素である@Providesは、3つの機能を提供します。1.どのタイプ(修飾されている可能性がある)が提供されているかを宣言します—これは戻りタイプです2.依存関係を宣言します—これらはメソッドのパラメーターです3.インスタンスが提供される方法を正確に実装します—これはメソッド本体です最初の2つの関数は一意であり、「すべての@Provides」メソッドにとって重要ですが、3番目の関数は多くの場合、退屈で反復的です。そのため、実装がDaggerによって推論されるほど単純で一般的な@Providesが存在する場合はいつでも、それを本体のないメソッド(抽象メソッド)として宣言し、Daggerに動作を適用させることが理にかなっています。methodsのように扱うべきであると言うだけなら、@Providesの仕様は基本的に条件付きロジックの束を持つ2つの仕様になります。methodは、型が戻り型に割り当て可能な単一のパラメーターのみを持つことができます。これらの仕様を分離すると、注釈によって制約が決定されるため、正確性についての推論が容易になります。