如何解決Java循環(huán)依賴的問題-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)如何解決Java循環(huán)依賴的問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。成都創(chuàng)新互聯(lián)公司提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運(yùn)營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價(jià)值。

最近看到一個(gè)問題:如果有兩個(gè)類A和B,A類中有一個(gè)B的對象b,B類中有一個(gè)A的對象a,那么如何解決這兩個(gè)類的相互依賴關(guān)系呢,幾天就給大家說一下Java的循環(huán)依賴,raksmart服務(wù)器。

舉個(gè)栗子1:
如何解決Java循環(huán)依賴的問題

可以看到A類的構(gòu)造方法中,new了一個(gè)B的對象,同時(shí)B類的構(gòu)造方法中,new了一個(gè)A的對象。

如果此時(shí)我們運(yùn)行該類的話,會(huì)報(bào)如下錯(cuò)誤:

Exception in thread “main” java.lang.StackOverflowError

問題出現(xiàn)的原因在于A類和B類之間出現(xiàn)了循環(huán)依賴。

那么是否有方法可以解決這個(gè)問題呢?答案是:有

舉個(gè)栗子2:
如何解決Java循環(huán)依賴的問題
如何解決Java循環(huán)依賴的問題

運(yùn)行例子2,運(yùn)行結(jié)果為:

BB

AA

AA

BB

在例子2中,testa和testb創(chuàng)建時(shí)調(diào)用的是類A和類B的默認(rèn)構(gòu)造方法,創(chuàng)建了類A和類B的實(shí)例。

然后將B的實(shí)例注入到類A中。testa.b = testb;

將A的實(shí)例注入到類B中。testb.a = testa;

testa.print()調(diào)用b.printA();b.printA()調(diào)用a.printA();a.printA()顯示結(jié)果為AA

我們通過屬性注入的方法,使得類A和類B不在出現(xiàn)例子1中的錯(cuò)誤,并且使得兩個(gè)相互依賴的類A和B可以調(diào)用相互依賴的方法。

事實(shí)上,spring中也是通過依賴注入的方法來解決類的相互依賴問題。

看完上述內(nèi)容,你們對如何解決Java循環(huán)依賴的問題有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前文章:如何解決Java循環(huán)依賴的問題-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article14/icode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)軟件開發(fā)、品牌網(wǎng)站設(shè)計(jì)、微信公眾號(hào)域名注冊、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)