第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

java.lang.StackOverflowError 但我沒(méi)有循環(huán)任何東西

java.lang.StackOverflowError 但我沒(méi)有循環(huán)任何東西

江戶川亂折騰 2023-03-23 14:20:05
我有兩種方法,一種在主類(lèi)中,一種在名為“DeleteWall”的類(lèi)中。我正在創(chuàng)建每個(gè)類(lèi)的實(shí)例,以便我可以訪問(wèn)它們的方法。我已經(jīng)閱讀了 stackOverflows 上的所有帖子,但我看不到什么我做錯(cuò)了......就像我沒(méi)有循環(huán)它以盡可能地創(chuàng)建一個(gè)新實(shí)例一樣。我將突出顯示導(dǎo)致錯(cuò)誤的行,如 intellij 所說(shuō)。我只調(diào)用一次演示以及。哦,方法“delNode”在主類(lèi)中,因此它的實(shí)例是“werk”。    //Main class    DeleteWall ok=new DeleteWall(); //error line    public void demo(){    System.out.println("running");    ok.delWalls(30,0,30,30);    System.out.println("didnt stop");    }     //DeleteWall class     public class DeleteWall  {     Main werk = new Main(); //error line     public  void delWalls(int Sx, int Sy, int Ex, int Ey) {     werk.delNode(Sx, Sy, Ex, Ey);     }     }
查看完整描述

3 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

主要問(wèn)題減少到


public class Main {

    DeleteWall ok = new DeleteWall();

}


public class DeleteWall  {

    Main werk = new Main();

}

如果這些類(lèi)中的任何一個(gè)被實(shí)例化,則必須創(chuàng)建另一個(gè)的實(shí)例,這又將再次創(chuàng)建第一個(gè)的新實(shí)例,依此類(lèi)推。整個(gè)設(shè)計(jì)很奇怪,就像聲明每個(gè) House 總是包含一個(gè) Car,而每個(gè) Car 總是包含一個(gè) House。


解決問(wèn)題:接收DeleteWall實(shí)例Main而不是創(chuàng)建新實(shí)例。一些可能性:


在構(gòu)造函數(shù)中


public class Main {

    DeleteWall ok = new DeleteWall(this);

}


////


public class DeleteWall  {

    Main werk;

    public DeleteWall(Main main) {

        werk = main;

    }

}

打電話的時(shí)候


public class Main {

    DeleteWall ok = new DeleteWall();

    public void demo() {

        ok.delWalls(this, 30, 0, 30, 30);

    }

}


////


public class DeleteWall  {

    public void delWalls(Main werk, ...) {

        werk.delNodes(...);

    }

}

(還有很多其他的可能性,這在很大程度上取決于程序應(yīng)該做什么,問(wèn)題是如何建模的,偏好,......)


查看完整回答
反對(duì) 回復(fù) 2023-03-23
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

DeleteWall您有一個(gè)inside實(shí)例MainMaininside實(shí)例DeleteWall?,F(xiàn)在,當(dāng)它嘗試創(chuàng)建Main類(lèi)時(shí),它需要DeleteWall為該字段創(chuàng)建一個(gè)實(shí)例,當(dāng)它嘗試這樣做時(shí),它將需要為該字段DeleteWall ok= new DeleteWall();創(chuàng)建一個(gè)inside的實(shí)例。然后它返回創(chuàng)建 Main 并且你有你的無(wú)限循環(huán)。MainMain werk = new Main();DeleteWall



查看完整回答
反對(duì) 回復(fù) 2023-03-23
?
開(kāi)心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

您的班級(jí)有一個(gè)用對(duì)象初始化的Main字段。您的班級(jí)有一個(gè)用對(duì)象初始化的字段。okDeleteWallDeleteWallwerkMain

因此,當(dāng)程序開(kāi)始運(yùn)行時(shí),它會(huì)實(shí)例化該類(lèi)Main。由于在實(shí)例化類(lèi)時(shí)所有字段都被賦予了默認(rèn)值,所以這就需要實(shí)例化類(lèi)DeleteWall,這樣werk才能初始化。實(shí)例化DeleteWall類(lèi)需要先實(shí)例化Main類(lèi),這樣ok才能初始化。實(shí)例化Main類(lèi)需要先實(shí)例化DeleteWall類(lèi),這樣werk才能初始化。實(shí)例化DeleteWall類(lèi)需要先實(shí)例化Main類(lèi),這樣ok才能初始化。實(shí)例化Main類(lèi)需要先實(shí)例化DeleteWall類(lèi),這樣werk才能初始化。...


查看完整回答
反對(duì) 回復(fù) 2023-03-23
  • 3 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)