当前位置: 代码迷 >> J2SE >> 帮小弟我看看 传值进去 如何变成null了?
  详细解决方案

帮小弟我看看 传值进去 如何变成null了?

热度:67   发布时间:2016-04-24 00:42:36.0
帮我看看 传值进去 怎么变成null了???
Java code
        task.mCmds = new Task.Cmd[cmdLength];    Log.i("TASKS", " task cmds cmd len" + task.mCmds.length);    for (int i = 0; i < cmdLength; i++) {        parseOneCmd(cmdsAr[i], task.mCmds[i]);    }



task.mCmds 是一个Cmd对象数组, 我明明new了一个呀

结果传到 parseOneCmd(cmdsAr[i], task.mCmds[i]) 里

我打印的第二个参数为null!! 求解

------解决方案--------------------
Java code
new了数组还要new数组元素,LZ先弄清楚数组和数组元素的区别String[] sa = new String[5]; //此时sa不为null,但是sa[0]...sa[5]还是nullsa是指向String数组的对象,但是sa[0]是指向String的对象,完全不一样所以要for (int i=0; i<sa.length; i++) {    sa[i] = new String(i); //数组元素也要new}所以你的task.mComs虽然不是null(因为它指向一个数组对象),但是task.mCmds[i]还是null,因为你没有new系统是不会自动帮你new的(基本类型系统才会自动设置默认值)
------解决方案--------------------
系统有问题?回复看不见了.
------解决方案--------------------
1L已经给你说了
数组和数组元素是两个概念
数组对象不是null不代表数组元素不是null,这是初学者常犯的错误
比如
地皮[] a = new 地皮[5]; //相当于我们申请了5块地皮,也就是a不是null
但是a[0]还是荒地,什么都没有,也就是说a[]还是null,必须我们自己去建房子它才有东西
  相关解决方案