黑马程序员技术交流社区

标题: 空指针异常?? [打印本页]

作者: 小蚊子    时间: 2013-12-20 22:06
标题: 空指针异常??
本帖最后由 小蚊子 于 2013-12-20 22:24 编辑

以下代码在运行时,12行抛出了空指针异常??
1.public class Item {
2.                                 
3.        private Integer id;
4.                                 
5.        public Integer getId() {
6.            return id;
7.        }
8.    }
9.                                 
10.    public int getInt(Item item) {
11.       if (item != null) {
12.            return item.getId();
13.        } else {
14.            return 0;
15.        }
16.    }




作者: jing迪    时间: 2013-12-20 22:13
哪个是第12行。。。。怎么不把行号列出来{:soso_e115:}
作者: yuehaotian    时间: 2013-12-20 22:26
姐们,你私有的 Integer 引用 , 貌似没有指向具体对象吧!!!
作者: yuehaotian    时间: 2013-12-20 22:27
没有指向对象  你又怎么能调用呢!
作者: 李然    时间: 2013-12-21 06:48
问题就出在你第三行的代码。Integer 是引用数据类型,它的类型的变量必须要指向在堆内存中对象才可以进行访问,你这样写等效于private Integer id = null;,相当于这个你的变量id没有指向任何对象,所以就报了空指针的错误,你可以改成Integer id = 0或者int id = 0;或者int id;以上三个方法都是可以的,这样应该很明白了吧。




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