私は、これらのクラスを持っている:このように、パスのみを提供するのが妥当と思われるDagger 2で注釈を伝播することはできますか?
class Storage {
@Qualifier
@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
public @interface Songs {}
@Qualifier
@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
public @interface Movies {}
@Inject
public Storage(
@Songs Blobstore songsStore,
@Movies Blobstore moviesStore) {
// ...
}
class Blobstore {
@Inject
public Blobstore(File path) {
// ...
:
@Provides
@Songs
public static File songPath() { return new File("/sdcard/songs"); }
@Provides
@Movies
public static File moviePath() { return new File("/sdcard/movies"); }
しかし、私はこれを行う場合、私はエラーメッセージが表示されます:File is bound multiple times
。これを修正する方法はありますか?
は '@ Songs' a' @ Qualifier'ですか? – EpicPandaForce
@EpicPandaForce「@曲」を「@修飾子」にすることができます。それでも同じメッセージで失敗します。 – Lev
'@interface Songs'に' @ Qualifier'を付けるか、モジュールで置き換えましたか?修飾子を正しく使用すると動作します。そうでない場合は、コードで質問を更新してください。 –