2012-02-10 30 views
0

在放棄了gson之後,我遇到了似乎很小的問題,但我似乎無法確定問題。我只是試圖從JSONArray中獲取整數數組,並將整數數組保存到類變量中。從JSONArray中檢索數組並將該數組設置爲類變量

int length = myArray.length(); 
if(length>0){ 
    for(int j=0; j<length; j++){ 
    JSONArray test = myArray.getJSONArray(j); 
    myArray = new int[test.length()]; 
    for(int k=0; k<test.length(); k++) { 
     myArray[k] = test.getInt(k); 
    } 
} 



    // However, when I add myArray to the User constructor, the values don't "stick" 
    // ie, 
    User user = new User(x, y, z, myArray); 

    // At this point, myArray doesn't contain its values after I try to access them fromthe  
    // User class 

這裏的用戶等級:

public User(String x, String y, int z, int[] myArray){ 
    this.x = x; 
    this.y = y; 
    this.z = z; 
    for(int i=0; i<myArray.length; i++){ 
     Log.v(LOG_TAG, "User: myArray [" + i + "] = " + myArray[i]); 
     this.myArray[i] = myArray[i]; 
    } 
} 

當我嘗試打印用戶的內容,所有的預期值都在那裏除了陣列本身。謝謝。

回答

0

我沒有看到你的代碼中的任何瑕疵的大,所以我會提供一些一般性的建議......

設置在你的代碼中的一些破發點並進入調試模式,所以你可以找出問題的範圍。在您將其傳遞給用戶類之前,myArray是否設置了其所有元素?如果沒有,請退後一步,確保正在解析您的JSON數組並正確傳遞給您值。

我會改變的另一件事是您的用戶構造函數的參數具有與內部字段相同的名稱。你用'this'這個變量很好,但你仍然想改變這個參數的名字以避免任何可能的混淆,你可能會把變量賦值給它自己。

設置斷點並逐步執行程序,您應該能夠確切地確定問題出現的位置,然後解決起來會更容易。

祝你好運!

+0

感謝您的建議。我能夠聽從你的建議,但我仍然沒有發現問題。最終,我用ArrayList對象替換了原始數組類型,並且實際上使這些更容易調試。 – user836200 2012-02-11 01:00:36