放弃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
这是User类:
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];
}
}
当我尝试打印User的内容时,除阵列本身外,所有预期值都在那里。感谢。
答案 0 :(得分:0)
我没有看到您的代码中存在任何重大缺陷,因此我将提供一些一般性建议......
在代码中设置一些断点并进入调试模式,以便确定问题的范围。 myArray是否在将其传递给用户类之前设置了所有元素?如果没有,那么请退后一步,确保正在解析您的JSON数组并正确地传递值。
我要改变的另一件事是User构造函数的参数与内部字段的名称相同。您使用了'this'变量这是好的,但您仍然希望更改该参数名称以避免任何可能的混淆,您可能会将变量分配给自身。
设置断点并逐步执行程序,您应该能够确切地确定问题首先发生的位置,然后解决起来会更容易。
祝你好运!