将对象数组作为字符串输出时如何处理NullPointerException?

时间:2011-12-13 15:29:30

标签: java

当我尝试从模块中输出字符串时

public class Module
{
public String moduleName;
 //public String moduleResults;

 public void setModuleName(String aModuleName)
 {
    moduleName = aModuleName;
 }
 public String getModuleName()
 {
    return moduleName;   
 }
}

使用

public void displayModules()
 {
    for (int i = 0; i < moduleArray.length; i++)
    {
        System.out.println(moduleArray[i].getModuleName());  
    }        
 }

当数组(长度为4)未满时,我得到一个NPE,当它是满的时,我使用该方法时没有输出任何内容。如果有所作为,我正在使用blueJ。

2 个答案:

答案 0 :(得分:3)

您的NPE来自尝试在空引用上调用getModuleName

System.out.println((moduleArray[i]!=null)?moduleArray[i].getModuleName():"null");  

至于为什么在你有有效元素时没有打印出来,我想你可能没有在其他地方正确设置名称。

答案 1 :(得分:1)

使用moduleArray[i].getModuleName()

检查if(moduleArray[i].getModuleName() != null) {then print it}是否为空