Java 从JSONArray检索数组并将数组设置为类变量

Java 从JSONArray检索数组并将数组设置为类变量,java,android,arrays,Java,Android,Arrays,在放弃gson之后,我遇到了一个似乎很小的问题,但我似乎无法确定问题所在。我只是尝试从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()];

在放弃gson之后,我遇到了一个似乎很小的问题,但我似乎无法确定问题所在。我只是尝试从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
int length=myArray.length();
如果(长度>0){

对于(int j=0;j我没有看到您的代码中有任何大的缺陷,因此我将提供一些一般性建议

在代码中设置一些断点并进入调试模式,以便确定问题的范围。在将myArray传递给用户类之前,myArray是否设置了所有元素?如果没有,请后退一步,确保正在解析JSON数组并正确传递值

我要更改的另一件事是,用户构造函数的参数与内部字段的名称相同。您使用了“this”变量,这很好,但您仍然希望更改该参数名称以避免任何可能的混淆,您可能正在将该变量分配给自身

设置断点并逐步完成您的程序,您应该能够准确地确定问题首先发生的位置,然后将更容易解决


祝你好运!

谢谢你的建议。我能够听从你的建议,但我仍然没有发现问题所在。最终,我用ArrayList对象替换了原始数组类型,这实际上使它们更易于调试。
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];
     }
}