计算方法执行时间 & 匿名内部类
public class TimerHomework {
// 1. 定义一个任务接口(用于配合匿名内部类)
interface Task {
void execute();
}
// 2. 通用计时方法:计算传入任务执行了多少秒
public static void calculateExecutionTime(Task task) {
long startTime = System.currentTimeMillis(); // 记录开始时间(毫秒)
// 执行传入的具体任务(这就是用到了匿名内部类的地方)
task.execute();
long endTime = System.currentTimeMillis(); // 记录结束时间(毫秒)
// 计算时间差,转为秒(保留小数点)
double seconds = (endTime - startTime) / 1000.0;
System.out.println("方法执行耗时: " + seconds + " 秒");
}
public static void main(String[] args) {
System.out.println("--- 开始测试匿名内部类与计时 ---");
// 3. 【核心点】这里使用匿名内部类,直接传入我们要测试的代码块
calculateExecutionTime(new Task() {
@Override
public void execute() {
// 模拟一个耗时任务:睡眠 2.5 秒
try {
System.out.println("任务开始执行...");
Thread.sleep(2500); // 暂停 2500 毫秒 (2.5秒)
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任务执行结束!");
}
});
System.out.println("--- 测试结束 ---");
}
}

浙公网安备 33010602011771号