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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將項(xiàng)目添加到 arraylist 不添加它?

將項(xiàng)目添加到 arraylist 不添加它?

慕萊塢森 2023-02-23 10:39:18
所以基本上我正在做一個有趣的小項(xiàng)目。我制作了一個 Creature 對象,并在 Simulation 類中制作了一個生物列表。問題是無論我如何訪問列表,它都不會添加該項(xiàng)目。它似乎完全忽略了添加語句之后編寫的所有代碼。我試過吸氣劑。Simulation.getCreatures.add(creature). 我試過手動訪問它。creatures.add(creature). 我試過制作一個添加方法。Simulation.addCreature(creature). 這些都不起作用這是主類的一個片段。是的,我已經(jīng)把它放在主要方法中,之前的代碼工作得很好。它很好地創(chuàng)造了這個生物。但它忽略了 addCreature 和打印。(抱歉,但我無法使代碼格式正常工作。如果有人也能幫助我,我將不勝感激)Creature creature = new Creature(420, 120, 120, 1);Simulation.addCreature(creature);System.out.println("yes");這是我的模擬課的片段。在 addCreature 部分,它甚至不打印。private static ArrayList<Creature> creatures = new ArrayList<>();static void addCreature(Creature creature){System.out.println("ADDED CREATURE");creatures.add(creature);}沒有錯誤消息。非常感謝,希望您能指出我做錯的地方。如果您需要完整代碼: https: //github.com/SearchForMe/Simulation
查看完整描述

2 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個贊

正如 Nexevis 和 Abhishek Patel 已經(jīng)說過的,您應(yīng)該將許多“靜態(tài)”參數(shù)/方法替換為非靜態(tài)的。話雖這么說,但這并不是您添加新生物出現(xiàn)問題的原因。


我從 GitHub 下載了您的代碼并將以下打印輸出添加到您的主類:


    System.out.println("1");

    setDebugActive(false);

    System.out.println("2");

    frame = new Frame();

    System.out.println("3");

    Simulation.setSimulationState(true);

    System.out.println("4");

    System.out.println("5");

    Creature creature = new Creature(420, 120, 120, 1);

    System.out.println("6");

    Simulation.addCreature(creature);

    System.out.println("yes");

    System.out.println(Simulation.getCreatures().size());

我注意到只打印了 1-5 個,在這些打印輸出之后立即出現(xiàn)了多個打印輸出,例如:


Found food at: 63 32

New Position: 122 121

moved

由此我發(fā)現(xiàn)您在Creature類的構(gòu)造函數(shù)內(nèi)部使用了一個 while 循環(huán),因此構(gòu)造函數(shù)永遠(yuǎn)不會返回,代碼也永遠(yuǎn)不會到達(dá)它添加到 ArrayList 的位置。


你永遠(yuǎn)不應(yīng)該在構(gòu)造函數(shù)中有一個無限的 while 循環(huán)......永遠(yuǎn)......相反,我建議使用類之類的東西Timer來安排更新。我會讓定時器在模擬中調(diào)用一個更新函數(shù),然后模擬在該函數(shù)中的每個生物中調(diào)用一個更新函數(shù)。


查看完整回答
反對 回復(fù) 2023-02-23
?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊

正如@Nexevis 所說,您似乎在Simulation課堂上錯誤地使用了 static 。此外,您需要從外部訪問的每個函數(shù)都應(yīng)該在其前面有一個修飾符以將其設(shè)置為public. 根據(jù) Java 文檔,

如果一個類沒有修飾符(默認(rèn),也稱為 package-private),它只在它自己的包內(nèi)可見(包被命名為相關(guān)類的組——您將在后面的課程中了解它們。)


查看完整回答
反對 回復(fù) 2023-02-23
  • 2 回答
  • 0 關(guān)注
  • 86 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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