如题,我自己定义了一个类,里面封装了一些属性,但是在实例化此类时,却总是出现NonePointException异常。有高人能指点一下原因吗?这是我定义的类:public class EmailMessage {
private String from = null ;
private String to = null ;
private String receive = null ;
private String subject = null ;
private String content = null ;
private String fileName = null ; public EmailMessage() {
super();
}
public String getContent() {
return content;
}
public String getSubject() {
return subject;
}
public String getTo() {
return to;
}
public void setContent(String content) {
this.content = content;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setTo(String to) {
this.to = to;
}
public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getReceive() {
return receive;
}
public void setReceive(String receive) {
this.receive = receive;
}
}这是运行会出现异常的代码://==================获取所有发件箱的邮件====================================//
public EmailMessage[] getAllSendEmail(){
//*********************这就是我定义的类******************//
EmailMessage[] email = new EmailMessage[2]; //这是我自己声明的类
try {
RecordEnumeration re = rs.enumerateRecords(null, null, false) ;
//=============================问题=======================//

System.out.println("re.numRecords() = "+re.numRecords());
for(int i=0; i < re.numRecords();i++){
System.out.println("***********************");
byte b[] = re.nextRecord();
System.out.println("byte b[]执行");

ByteArrayInputStream bais = new ByteArrayInputStream(b);
DataInputStream dis = new DataInputStream(bais);
to = dis.readUTF();
System.out.println(to+"执行");
subject = dis.readUTF();
content = dis.readUTF();
System.out.println("反序列化执行");
//*****************程序运行到这下面就出现了异常******************************//
email[i].setTo(to);
System.out.println("emails[i]执行");
email[i].setSubject(subject);
email[i].setContent(content);
System.out.println("邮件执行");
dis.close();
bais.close();
System.out.println("反序列化的发件人:"+from);
System.out.println("反序列化的收件人:"+to);
System.out.println("反序列化的主题:"+subject);
System.out.println("反序列化的正文:"+content);
System.out.println("\n");
}
} catch (Exception e) {
System.out.println("获取所有发件箱的邮件异常");
e.printStackTrace();

if(email == null){
System.out.println("null");
return null;
}
else{
return email;
}
}
这是出现异常提示信息:
***********************
byte b[]执行
收件人:[email protected]执行
反序列化执行
获取所有发件箱的邮件异常
java.lang.NullPointerException
at hfuu.eloc.ylwang.model.RMS.getAllSendEmail(+164)
at hfuu.eloc.ylwang.model.Outbox_Form.loadAllMessage(+16)
at hfuu.eloc.ylwang.model.Client_Form.commandAction(+103)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+296)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+194)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+51)

解决方案 »

  1.   

    问题解决了,原来是少了实例化数组对象。
    添加的代码是
    //==================获取所有发件箱的邮件====================================//
        public EmailMessage[] getAllSendEmail(){
    //*********************这就是我定义的类******************//
            EmailMessage[] email = null;    //这是我自己声明的类
            try {
                RecordEnumeration re = rs.enumerateRecords(null, null, false) ;
        //=============================问题解决=======================//  email = new EmailMessage[re.numRecords()];
     
                                 for(int i =0 ;i < re.numRecords();i++){//这个步骤很重要
     email[i] = new EmailMessage();
     }
      

  2.   

    呵呵,楼主这里  EmailMessage[] email = new EmailMessage[2];    //这是我自己声明的类
    jvm只为email数组初始化了两个null
      

  3.   

    这然我想起来我们老师说,实例化数组时要用for循环一个个实例化···