首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java指针异常

Java指针异常
EN

Stack Overflow用户
提问于 2013-06-07 08:50:02
回答 4查看 70关注 0票数 0

我试图遍历main函数类中的Student对象数组,但得到以下错误

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException
    at input_output.printOutClass(input_output.java:36)
    at input_output.main(input_output.java:11)

我的input_output文件中的第36行如下所示

代码语言:javascript
复制
 34  for(int i = 0; i < students.length; i++){
 35    System.out.println("---------------------------------------");
 36    students[i].getFullPrint();
 37    System.out.println("");
 38  }

经过一些调试后,我非常确定一旦代码在迭代中运行了第36行,在该迭代中,studentsi没有调用构造函数。然而,我是java的新手,不知道如何检查变量的内存地址来查看它是否存在。我该怎么做呢?

在进阶时谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-07 08:53:31

这意味着studentsi将返回null。

尝尝这个。

代码语言:javascript
复制
             for(int i = 0; i < students.length; i++){
                     System.out.println("---------------------------------------");
                     System.out.println( i + (students[i] == null));
                     if(students[i] != null){
                         students[i].getFullPrint();
                     }
                     System.out.println("");
             }

IDE的允许调试设置了一个断点,它应该会给你提供内存和变量状态。

票数 2
EN

Stack Overflow用户

发布于 2013-06-07 08:53:43

在Java中,指针称为引用。您可以避免引用尚未创建的对象,如下所示:

代码语言:javascript
复制
if (students[i] != null) {
    students[i].getFullPrint();
}

或者,您可以确保students[]数组中的所有对象都已创建。请注意,在Java中创建数组时,您只需创建用于保存对对象的引用的结构;而不是创建对象本身-它们需要通过调用其构造函数并为各个数组元素赋值来单独创建。

票数 1
EN

Stack Overflow用户

发布于 2013-06-07 08:53:11

检查引用是否等于null

代码语言:javascript
复制
if(students[i] != null) // blah blah
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16974563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档