首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-07-03 
帮我看看 传值进去 怎么变成null了???Java codetask.mCmds new Task.Cmd[cmdLength]Log.i(TASKS, t

帮我看看 传值进去 怎么变成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,必须我们自己去建房子它才有东西

热点排行