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

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

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

本文介紹了桂斯:怎么做后期裝訂?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試使用Google Guice進行一些后期綁定。

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);
    }
}

我在模塊中有一個綁定:

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

我還有另一個類Consumer erClass,它需要使用MyClass?,F(xiàn)在問題來了,因為dep在某個點之前將是空的,我將無法將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();

    }
}

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

有什么方法可以讓Guice僅在調用get()方法時創(chuàng)建提供程序實例嗎?還有沒有其他辦法來解決這個問題?

非常感謝。


杰夫:謝謝你的回復。

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

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方法即可訪問Guice可以提供的任何類型的提供程序。

這種方式dep只需要在調用MyProvider時提供,而不需要實例化。

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

分享到:
標簽:后期 怎么做 桂斯 裝訂
用戶無頭像

網(wǎng)友整理

注冊時間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

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

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

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

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定