Timer,Timertask的使用

TimerTask task  =   new  TimerTask()  {

public void run() {

    
try 
    
{
doWhat(); 
//我想在这里可以得到传值    }

    
catch (IOException e) 
    
{
System.err.println(e);
    }

         }

}
;

Timer timer 
= new Timer();

timer.schedule(task,date);
//doWhat()定期执行
 .

因为是Anonymous class的原因,所以无法对run()中的参数进行传值

 

关于 Class 的类型,有下面几个说法,比较容易混淆,它们不是并列的概念:
    Anonymous Class
    Inner Class
    Member Class
    Nested Class

而下面的 Class,并不是上面这些“特殊”的 Class 类型,而只是“普通”的 Class,唯一有点特别的是,它不是占据一个单独的 .java 文件,而是写在 MyServlet.java 文件里面,跟 MyServlet 并列。
至于要把从 HTTP request 里面得到的参数传给它,就可以像下面这样做(以下内容都在 MyServlet.java 文件中):

public   class  MyServlet  extends  HttpServlet  {
    
void doPost(HttpServletRequest req, HttpServletResponse resp) {
        ……
        Timer timer 
= new Timer();
        timer.schedule(
new Task( req.getParameter("id") ), date);
        ……
    }

}


class  Task  extends  TimerTask
{
    
private String param;
    
public Task(String param) this.param = param; }
    
public void run() {
        
try  {
            doWhat(param);
        }
 catch (IOException e) {
            System.err.println(e);
        }

    }

    ……
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值