为什么这个简单的小程序会报出空指针异常,很无语

wikeqi 2011-04-04 12:02:44
为什么这个简单的小程序会报出空指针异常,很无语


import java.util.Date;
import java.util.Timer;

import com.gw.mail.MailTest;

public class test {

public void start(){
Date datetime = new Date();
Timer timer = null;
System.out.println(datetime);
timer.schedule(new MailTest(), datetime);
}


public static void main(String[] args) {
test t = new test();
t.start();
}

}



报出的异常为:

Mon Apr 04 11:59:43 CST 2011
Exception in thread "main" java.lang.NullPointerException
at test.start(test.java:12)
at test.main(test.java:18)


at test.start(test.java:12)这里指的是timer.schedule(new MailTest(), datetime);

MailTest类得代码为:

package com.gw.mail;

//这是执行任务的类,即每隔一段时间要做的事情在这里

import java.io.IOException;
import java.net.UnknownHostException;
import java.util.TimerTask;
public class MailTest extends TimerTask {
@Override
public void run() {
MailMessage message = new MailMessage();
message.setFrom("xXX_j@163.com"); // 发送者
message.setTo("xXX@qq.com"); // 收件者
String server = "smtp.163.com"; // 发件者邮箱服务器
message.setSubject("Java Mail Test"); // title
message.setContent("Hello, this is GWVM system send mail test"); // content
message.setDataFrom("xX"); // 收到的邮件中发件人显示
message.setDataTo("xX"); // 收到的邮件中收件人显示
message.setUser("XXX_j@163.com"); // 发件箱的用户名
message.setPassword("XXX"); // 发件箱的密码

SMTPClient smtp;
try {
smtp = new SMTPClient(server, 25);
boolean flag;
flag = smtp.sendMail(message, server);
if (flag) {
System.out.println("邮件发送成功!");
} else {
System.out.println("邮件发送失败!");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}


}
}
...全文
201 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsq_kaka1 2011-04-04
  • 打赏
  • 举报
回复
Timer timer = null;

Timer没有初始化啊,后面调用它就会报空指针错了...
wikeqi 2011-04-04
  • 打赏
  • 举报
回复
谢谢大家了,这个问题搞了N久,没想到是这个环节出了问题
lxy15329 2011-04-04
  • 打赏
  • 举报
回复
初始化确实是一个很重要的环节,上次我也遇到了一个空指针异常的错误,弄了两个小时,才发现这个问题,太诡异了
Ganymede 2011-04-04
  • 打赏
  • 举报
回复
Timer timer = null;为空
然后 timer.schedule(new MailTest(), datetime);
有没有初始化?
huntor 2011-04-04
  • 打赏
  • 举报
回复
Timer timer = null;
没有初始化

Timer timer = new Timer();
mtv0199 2011-04-04
  • 打赏
  • 举报
回复
timer timer = null,再调用的时候肯定是空指针了。
wikeqi 2011-04-04
  • 打赏
  • 举报
回复
求解,看了N久没发现有什么问题~
  • 打赏
  • 举报
回复
没有初始化,你使用它肯定会报NullPointerException,以后小心啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧