您的位置:首页 > 其它

Timer,Timertask的使用

2007-02-25 16:07 323 查看



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);


        }


    }


    ……


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  timer class nested date