黑马程序员技术交流社区
标题:
这个传值进去怎么是null呢?求解.....
[打印本页]
作者:
汪璨
时间:
2012-6-24 16:17
标题:
这个传值进去怎么是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!! 求解
作者:
陈淑飞
时间:
2012-6-24 18:13
对象数组未初始化,系统默认是给null的。
1. task.mCmds只是引用了Task类中内部类Cmd的数组对象的句柄或叫引用。它只是存储了此对象数组中,首地址。
2. new Task.Cmd[cmdLength]; 是new出来数组了,但下面没有给数组初始化了,而系统给对象类数据组的元素初始化为null。而像 new int[cmdLength],系统会默认给元素赋值为0。所以,单凭你new Task.Cmd[cmdLength];一句话,JVM是不会帮你构造cmdLength-1个Task类中的Cmd类对象给你的。
----------------------------------------
随便说一句,楼主,你这种问问题法不太好哦。
直接截点代码出来,相关的背景什么的都不说,大家也不好判断呢。
最好是:
1. 问题描述:
2. 问题发现背景:
3. 问题影响广度:
4. 预想方案及测试方案结果等:.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2