Re: [問題] ArrayList、Array、區域變數

看板java作者 (._.)時間16年前 (2010/03/20 01:27), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
以後我可能會針對算命文加一條版規. 針對算命文的定義目前暫定就是 "沒有足夠的資訊判別錯誤發生的原因" 處置暫時預定就是鎖文直到改善, 修改方式可能是針對 4.2 及 5 作整併或釐清範圍... 詳細細節會再跟另外一位板主討論過後. 再另行公告修改版規的事宜, 以及如果有修改版規的話, 會公佈新版規. 以這篇文章為例, 具體發生 NullPointerException 的程式前後內容完全沒有附上. 更不用說 NullPointerException 的錯誤訊息沒有打全. 間接導致閱讀者無法迅速的從問題的發生點判明問題發生的原因. 但是既然回文了, 我就姑且算算命卜卜卦. 因為你把 floatList.add(0,"Only") 放在 setNum() 裡面 所以如果 main 裡面很晚呼叫 setNum() 或者根本沒呼叫過. 而在 setNum() 之前就去取出 floatList 裡面的值, 那 NullPointerException 也只是剛好而已. 舉個很現實的例子... 如果你有玩過開心農場. 都還沒播種就想要收菜嘛? ※ 引述《love112302 (小黑炭)》之銘言: : 會出現 IndexOutOfBoundsException 錯誤訊息不只這一行吧. : 可是在 setNum 這個 method 可以正常print出來 : 請問是為什麼哩.... 如果程式碼只有你說的這樣, 可以請你解釋哪邊有 print 什麼東西嘛? : 想請問要怎麼宣告才可以讓這個 arrayList 能夠讓所有的method都能使用 : 另外 ogamenewbie 你的比喻我真的看不太懂阿.... 因為我根本不知道你的流程, 只能用推測的, 在你看來是雞同鴨講也是理所當然的. : 意思是說 我 .add() 這個動作不是放值進去嗎@@? 是放值進去吧. 雖然我沒去 check API. (比較常用 HashMap 沒在用 ArrayList) ※ 引述《love112302 (小黑炭)》之銘言: : 想知道 : ArrayList Array : 可以宣告成區域變數嗎? : public class Test_Array : { : private ArrayList<String> floatList = new ArrayList<String>(); : public static void main(String args[]){ : ...........} : public void setNum(){ : floatList.add(0,"Only") : } : } : 我用這樣去宣告ArrayList可以compile過 : 可是我在其它的method去取出 floatList 裡面 0 的值 ( floatList.get(0) ) : 會出現 nullpointer.... : 可是在 setNum 這個 method 可以正常使用 : 請問是為什麼哩.... : 想請問要怎麼宣告才可以讓這個 arrayList 能夠讓所有的method都能使用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.33.96 ※ 編輯: ogamenewbie 來自: 218.160.33.96 (03/20 01:36) ※ 編輯: ogamenewbie 來自: 218.160.33.96 (03/20 01:39) ※ 編輯: ogamenewbie 來自: 218.160.33.96 (03/20 01:48)

03/20 01:51, , 1F
我想說把有影響到的程式po上來就好
03/20 01:51, 1F
問題是有影響到的不只這些. 你是在別的 class 去 new TestArray, 還是你是在 TestArray 裡面的 Main 跑而已? 這個 floatList 是所有的 TestArray 共通使用的, 還是 new 一個 TestArray 就有一個各自獨立的? 你以為那些沒有影響, 實際上少了那些就一堆方式可以去假設你程式可能的作法. 而事實上你可能根本就沒那麼想過. ※ 編輯: ogamenewbie 來自: 218.160.33.96 (03/20 02:14) ※ 編輯: ogamenewbie 來自: 218.160.33.96 (03/20 02:18)
文章代碼(AID): #1BexGG0_ (java)
文章代碼(AID): #1BexGG0_ (java)