TimerTask 定时器类问题...抛java.lang.NullPointerException异常

lin_cz 2011-08-26 04:31:54
这个是我的源码

public class MemConnectTestTimer
/**
* 测试mem连接是否有效
*/
public static void testMemConnect()
{
if (logger.isInfoEnabled())
{
logger.info("ento the testMemConnec()");
}

//获取定时时间间隔
int time = Integer.parseInt(900000);

//初始化定时类
Timer timer = new Timer();

//定时检测,tomcat启动10s后启动
timer.schedule(new MemTask(), 10000,time);

if (logger.isInfoEnabled())
{
logger.info("exit the testMemConnec()");
}
}
}

public class MemTask extends TimerTask
{

/**
* 日志信息
*/
private static UCDLog logger = LogManager.getLog(Contants.COMMON_LOG);

//获取缓存类实例
private static MyMemcached memcached = MyMemcached.getInstance();

/**
* 重载TimerTask的run方法
*/
public void run()
{
//记录入口日志
if (logger.isInfoEnabled())
{
logger.info("Begin to test memcached......");
}

//如果插入数据失败,则重新初始化缓存类
if (!memcached.addData("test", "test"))
{
memcached.reInit("test", "test");
}

//记录出口日志
if (logger.isInfoEnabled())
{
logger.info("Exit from test memcached.");
}
}

}


有时候看日志的时候会抛这样一个异常:
2011-08-26 15:58:35,035 INFO [Timer-0] [? run] Exit from test memcached.
Exception in thread "Timer-0" java.lang.NullPointerException
at com.huawei.internet.util.MemTask.run(Unknown Source)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

是不是我的类哪里写得不够好
...全文
331 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin_cz 2011-09-06
  • 打赏
  • 举报
回复
应该是把static去掉.在判断是否为null
小笨熊 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lin_cz 的回复:]
如果为null应该怎么写?
[/Quote]

那就给一个默认的值哇
lin_cz 2011-08-26
  • 打赏
  • 举报
回复
如果为null应该怎么写?
qybao 2011-08-26
  • 打赏
  • 举报
回复
private static MyMemcached memcached = MyMemcached.getInstance();
看代码,估计是你的memcached是null,调用
if (!memcached.addData("test", "test"))
{
memcached.reInit("test", "test");
}
之前做个判断看看,看看memcached是不是null

62,634

社区成员

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

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