专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > J2SE

关于java中的计时有关问题

发布时间:2010-06-05 05:23:09 文章来源:www.iduyao.cn 采编人员:星星草
关于java中的计时问题
说一下流程:
当一个数据报DatagramPacket做好了,就要用DatagramSocket.send()进行发送。
问题出现了:
这个时候需要启动一个定时器,当定时器到时间之后,还没有收到数据报的反馈,那么我们可以猜测:接受方没有收到我们发送的数据报。那么我们就要自动重新发送一个数据报。
问题是,这个定时器怎么实现。

如果用Timer类来实现的话,那么在TimerTask重写的run()方法里面执行的必须是静态的代码(应该是这样吧),那么就没有办法重新发送这个DatagramPacket,因为它不是final的。

请问各位大侠,怎么解决这个问题?

------解决方案--------------------
这和是否是final无关吧?不知道你的代码是怎么写的

你的DatagramSocket,DatagramPacket对象是作为方法参数传入的并且这两个参数又被传入到方法里面定义的匿名类中?如果是这样,那么这样好了(在方法参数声明上加final):
public void aMethod(final DatagramSocket ds, final DatagramPacket dp) {
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
ds.send(dp);
}
}, 10 * 1000);
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: