日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了桂斯:怎么做后期裝訂?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在嘗試使用Google Guice進(jìn)行一些后期綁定。

public class MyClassProvider implements Provider<MyClass>{
    private DependencyClass dep;
    private WebService webservice;

    @Inject
    MyClassProvider(DependencyClass dep, WebService webservice){
        this.dep = dep;
        this.webservice = webservice;
    }

    public MyClass get() {
        MyClass myclass = webservice.call(dep);
    }
}

我在模塊中有一個(gè)綁定:

   bind(MyClass.class).toProvider(MyClassProvider.class).in(ServletScopes.REQUEST);

我還有另一個(gè)類Consumer erClass,它需要使用MyClass。現(xiàn)在問(wèn)題來(lái)了,因?yàn)閐ep在某個(gè)點(diǎn)之前將是空的,我將無(wú)法將MyClass注入Consumer erClass,因此我注入了提供者。

public class ConsumerClass {
    private MyClassProvider myClassProvider;

    @Inject
    public ConsumerClass(Provider<MyClass> myClassProvider){
       this.myClassProvider = myClassProvider;
    }

    ......

    public void myfunction() {
        // Here dep is initialized and become non-null here.

        // Then, I call
        MyClass myClass = myClassProvider.get();

    }
}

我遇到的問(wèn)題是,當(dāng)我將MyClassProvider注入到Consumer erClass時(shí),它試圖創(chuàng)建MyClassProvider的一個(gè)實(shí)例,因?yàn)楫?dāng)時(shí)dep為空,所以失敗了。將其注釋為@Nullable并不能解決我的問(wèn)題,因?yàn)闊o(wú)論如何我都需要在提供程序的get()方法中使用dep。

有什么方法可以讓Guice僅在調(diào)用get()方法時(shí)創(chuàng)建提供程序?qū)嵗龁幔窟€有沒(méi)有其他辦法來(lái)解決這個(gè)問(wèn)題?

非常感謝。


杰夫:謝謝你的回復(fù)。

您的意思是我可以將代碼更改為以下代碼:

public class MyClassProvider implements Provider<MyClass>{
        private Provider<DependencyClass> depProvider;
        private WebService webservice;

        @Inject
        MyClassProvider(Provider<DependencyClass> depProvider, WebService webservice){
            this.depProvider = depProvider;
            this.webservice = webservice;
        }

        public MyClass get() {
            DependencyClass dep = depProvider.get(); 
            MyClass myclass = webservice.call(dep);
        }
    }

推薦答案

DependencyClass替換為Provider<DependencyClass>。Guice不需要toProvider@Provides方法即可訪問(wèn)Guice可以提供的任何類型的提供程序。

這種方式dep只需要在調(diào)用MyProvider時(shí)提供,而不需要實(shí)例化。

這篇關(guān)于桂斯:怎么做后期裝訂?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,

分享到:
標(biāo)簽:后期 怎么做 桂斯 裝訂
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定