Re: [問題] ArrayList、Array、區域變數
以後我可能會針對算命文加一條版規.
針對算命文的定義目前暫定就是 "沒有足夠的資訊判別錯誤發生的原因"
處置暫時預定就是鎖文直到改善,
修改方式可能是針對 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
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)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):