黑马程序员技术交流社区

标题: StringBuilder数组报空指针异常 [打印本页]

作者: fightingwang    时间: 2015-1-31 16:37
标题: StringBuilder数组报空指针异常
错误代码如下:public class testA {

        public static void main(String[] args) {
                StringBuilder[] sb=new StringBuilder[4];
                byte[] b=new byte[10];
                for (int i = 0; i < sb.length; i++) {
                        for (int j = 0; j < b.length;j++) {
                                sb[i].append(b[j]);
                        }
                }
                for (int i = 0; i < sb.length; i++) {
                        System.out.println(sb[i]);
                }        
        }
}
作者: cs8630323    时间: 2015-2-1 11:55
sb里都没有元素,都是null啊
作者: outsider1020    时间: 2015-2-1 12:05
byte数组是null
作者: 天堂雨    时间: 2015-2-1 12:05
本帖最后由 天堂雨 于 2015-2-1 12:24 编辑

我重新看了一下,明白了。因为你创建了一个StringBuilder数组,却没有赋值,就是说数组中根本就不存在StringBuilder的对象,
而只有StringBuilder对象才可以调用类中的append()方法,也就是说 sb[0].append() 中的 sb[0] 是空指针。
此乃正解。。。

作者: 奔跑的猴子    时间: 2015-2-1 12:07
byte[] b=new byte[10];
数组b只是定义了,还未赋值过,直接把b[j]赋给别人肯定会报错啊,因为b本身就还是个空的数组
作者: fightingwang    时间: 2015-2-1 12:14
cs8630323 发表于 2015-2-1 11:55
sb里都没有元素,都是null啊

呵呵,谢谢啊
作者: fightingwang    时间: 2015-2-1 12:15
outsider1020 发表于 2015-2-1 12:05
byte数组是null

明白了,非常感谢
作者: fightingwang    时间: 2015-2-1 12:17
奔跑的猴子 发表于 2015-2-1 12:07
byte[] b=new byte[10];
数组b只是定义了,还未赋值过,直接把b[j]赋给别人肯定会报错啊,因为b本身就还是 ...

嗯啊,明白了,谢谢哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2