You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:18:11