亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Dagger2學習筆記之Qualifier

2019-11-09 13:56:02
字體:
來源:轉載
供稿:網友

dagger2在使用中,會出現兩個方法返回對象相同時的情況,那么如何區分呢。

由Dagger2學習筆記之dependencies更改的demo

public class PResent {    String ss = "呵呵噠";    public Present(Context context) {    }    public Present(String name) {        this.ss = name;    }}

@Modulepublic class AppModule {    Context mContext;    public AppModule(Context context) {        this.mContext = context;    }    @Provides    public Context provicesContext(){        return mContext;    }    @Provides    public String provicesString(){        return "盲僧";    }}

@Component(modules = {AppModule.class})public interface AppComponent {    //暴露一個接口    Context proContext();    //暴露一個接口    String proString();}

@Modulepublic class ActivityModule {    @Named("context")    @Provides    Present providesPresent(Context context){        return new Present(context);    }    @Named("string")    @Provides    Present providesPresentName(String name){        return new Present("女警");    }}

@Component(dependencies = {AppComponent.class},modules = {ActivityModule.class})public interface ActivityComponent {    void injectActivity(Main3Activity activity);}

public class Main3Activity extends AppCompatActivity {    @Named("context")    @Inject    Present mPresent;    @Named("string")    @Inject    Present mPresent2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main3);        AppComponent appComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();        ActivityComponent activityComponent = DaggerActivityComponent.builder()                .appComponent(appComponent)                .activityModule(new ActivityModule())                .build();        activityComponent.injectActivity(this);        Log.e("",mPresent.ss+"    "+mPresent2.ss);    }}打印結果為:呵呵噠    女警

注意點:

1:Main3Activity中的屬性必須用@Named("xxx")進行標注

2:ActivityModule中也需要@Named("xxx")進行標注

可以看出來,我們在用@Named時,很容易把括號里面的內容填寫錯誤,這時Qualifiler(限定符,自定義標記)的作用

創建兩個注解

@Qualifier@Retention(RetentionPolicy.RUNTIME)  // 運行時仍可用public @interface PresentForContext {}

@Qualifier@Retention(RetentionPolicy.RUNTIME)  // 運行時仍可用public @interface PresentForName {}

再把上面demo中的@Named("xx")替換掉就行

@Modulepublic class ActivityModule {    @PresentForContext    @Provides    Present providesPresent(Context context){        return new Present(context);    }    @PresentForName    @Provides    Present providesPresentName(String name){        return new Present(name);    }}

public class Main3Activity extends AppCompatActivity {    @PresentForContext    @Inject    Present mPresent;    @PresentForName    @Inject    Present mPresent2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main3);        AppComponent appComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();        ActivityComponent activityComponent = DaggerActivityComponent.builder()                .appComponent(appComponent)                .activityModule(new ActivityModule())                .build();        activityComponent.injectActivity(this);        Log.e("",mPresent.ss+"    "+mPresent2.ss);    }}

這就是Qualifiter的用法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久人人看视频| 欧美激情精品久久久久久| 国产成人自拍视频在线观看| 日韩在线观看电影| 欧美日韩国产成人在线| 欧美日本高清视频| 日韩经典中文字幕| 中文字幕久热精品视频在线| 亚洲人成在线观看网站高清| 午夜伦理精品一区| 久久精品国产清自在天天线| 亚洲人精品午夜在线观看| 国产欧美韩国高清| 精品一区二区三区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩精品极品视频| 亚洲激情视频网| 亚洲成人久久网| 日韩成人av在线| 亚洲国产欧美日韩精品| 91九色综合久久| 精品视频偷偷看在线观看| 久青草国产97香蕉在线视频| 亚洲欧美国产精品久久久久久久| 热久久美女精品天天吊色| 免费av在线一区| 欧美在线激情视频| 久久亚洲国产成人| 精品欧美一区二区三区| 亚洲第一福利网站| 精品一区精品二区| 欧美日韩成人在线播放| 亚洲国产一区自拍| 欧美黑人极品猛少妇色xxxxx| 欧美大尺度在线观看| 亚洲欧美日韩天堂一区二区| 久久精视频免费在线久久完整在线看| 91高潮在线观看| 日韩小视频网址| 成人免费午夜电影| 久久精品人人爽| 精品亚洲男同gayvideo网站| 国产日韩av高清| 国外成人在线直播| 欧美最近摘花xxxx摘花| 欧美激情区在线播放| 欧美人在线观看| 国产精品吴梦梦| 一区二区三区无码高清视频| 欧美性xxxx在线播放| 久久久久在线观看| 精品久久久免费| 久久成人这里只有精品| 中日韩美女免费视频网站在线观看| 日韩美女在线观看| 亚洲国产日韩精品在线| 中文字幕欧美日韩va免费视频| 大伊人狠狠躁夜夜躁av一区| 欧美性xxxxxxxxx| 久久久久久亚洲| 亚洲精品久久久久久久久久久久久| 欧美激情免费在线| 欧美黄网免费在线观看| 欧美黄色片视频| 欧美一级片在线播放| 正在播放国产一区| 国产精品免费久久久久影院| 久久艹在线视频| 欧美黑人极品猛少妇色xxxxx| 亚洲高清免费观看高清完整版| 97色在线视频| 色噜噜亚洲精品中文字幕| 久久伊人精品视频| 两个人的视频www国产精品| 欧美精品激情在线观看| 91精品国产色综合| 国产在线播放91| 精品国产拍在线观看| 亚洲在线视频观看| 日韩欧中文字幕| 亚洲欧美中文另类| 538国产精品一区二区在线| 欲色天天网综合久久| 国产成人jvid在线播放| 日本久久久久亚洲中字幕| 久久综合网hezyo| 成人精品在线视频| 欧美交受高潮1| 欧美最猛性xxxxx(亚洲精品)| 欧美黑人一区二区三区| 欧美日韩国产限制| 亚洲国产女人aaa毛片在线| 日韩一区二区三区xxxx| 欧日韩在线观看| 亚洲精品久久久久久下一站| 久久久久久91香蕉国产| 亚洲福利视频网站| 国产精品视频资源| 欧美激情视频免费观看| 亚洲奶大毛多的老太婆| 日韩免费看的电影电视剧大全| 高清日韩电视剧大全免费播放在线观看| 高清视频欧美一级| 久久久亚洲网站| 亚洲精品视频免费| 成人有码视频在线播放| 亚洲综合社区网| 亚洲**2019国产| 操人视频在线观看欧美| 欧美成人精品一区二区三区| 98精品国产高清在线xxxx天堂| 亚洲日本成人女熟在线观看| 亚洲成人免费在线视频| 中文字幕在线看视频国产欧美| 亚洲男人天堂视频| 日韩视频精品在线| 国产免费一区二区三区香蕉精| 欧美电影免费在线观看| 国产精品久久婷婷六月丁香| 日韩美女免费线视频| 国产精品成人国产乱一区| 久久久久久久久亚洲| www.欧美精品一二三区| 亚洲free性xxxx护士hd| 日韩免费观看在线观看| 中文字幕av日韩| 国模精品视频一区二区| 黄色精品在线看| 97色在线播放视频| 国产丝袜精品视频| 久久久国产精彩视频美女艺术照福利| 亚洲精品在线不卡| 久久av.com| 欧美性视频网站| 亚洲成人激情在线| 九九九久久国产免费| 亚洲国产成人av在线| 欧美中文在线观看国产| 狠狠色香婷婷久久亚洲精品| 久久大大胆人体| 久久久亚洲欧洲日产国码aⅴ| 欧美体内谢she精2性欧美| 亚洲午夜未满十八勿入免费观看全集| 91国产美女视频| 亚洲国产精品电影在线观看| 亚洲高清久久网| 国产午夜精品全部视频在线播放| 亚洲精品综合精品自拍| 欧美性猛交xxxx黑人| 日韩中文字幕久久| 日韩精品视频中文在线观看| 国产欧美精品一区二区三区-老狼| 一个人看的www久久| 日本精品久久久久影院| 欧美成人免费全部观看天天性色| 91九色综合久久| 亚洲美女福利视频网站| 成人444kkkk在线观看| 欧美专区在线播放| 亚洲天堂视频在线观看| 久久午夜a级毛片| 国产精品日韩久久久久| 国产日韩精品在线| 亚洲午夜未满十八勿入免费观看全集|