如何在Java代码中添加等待/延迟?遇TimeUnits调用报错
Java代码实现延迟的正确方式
你遇到的问题是写法不符合Java的API规范,具体问题和修正方法如下:
错误原因
- Java中不存在
TimeUnits类,正确的类名是java.util.concurrent.TimeUnit(单数形式) - 没有
Second这个枚举常量,正确的时间单位枚举是大写的SECONDS sleep方法会抛出InterruptedException,必须显式捕获或抛出该异常
修正方案
方案1:使用TimeUnit类(可读性更好)
import java.util.concurrent.TimeUnit; // 生成轨迹逻辑 Trajectory exampleTrajectory = TrajectoryGenerator.generateTrajectory(trajectory); // 实现10秒延迟 try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { // 处理中断,通常恢复线程中断状态并打印异常信息 Thread.currentThread().interrupt(); e.printStackTrace(); }
方案2:使用Thread.sleep方法(基础写法)
如果不想引入TimeUnit类,也可以直接用Thread的sleep方法,参数为毫秒数:
// 生成轨迹逻辑 Trajectory exampleTrajectory = TrajectoryGenerator.generateTrajectory(trajectory); // 实现10秒延迟(10*1000毫秒) try { Thread.sleep(10000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); e.printStackTrace(); }
注意事项
两种方法都会让当前执行线程暂停指定时长,务必处理InterruptedException——当线程在睡眠时被中断,会抛出该异常,恢复线程的中断状态是良好的编程习惯,避免后续逻辑忽略中断信号。
内容的提问来源于stack exchange,提问作者Macattack
相关产品推荐
相关产品推荐

