>从www.JavaPractices.com复制的此代码中的令牌是什么意思?当我用更通用的泛型类型替换它时,它无法编译。(错误:T无法解析为类型。)为什么?
// > occurs 3 times in the entire program. When it is replaced with the
// program no longer compiles.
void activateAlarmThenStop()
{
Runnable myPeriodicTask = new PeriodicTask();
ScheduledFuture> soundAlarmFuture =
this.executorService.scheduleWithFixedDelay(myPeriodicTask,
startT,
period,
TimeUnit.SECONDS
);
Runnable stopAlarm = new StopAlarmTask(soundAlarmFuture);
this.executorService.schedule(stopAlarm, stopT, TimeUnit.SECONDS);
}
private final class StopAlarmTask implements Runnable
{
StopAlarmTask(ScheduledFuture> aSchedFuture)
{
fSchedFuture = aSchedFuture;
}
public void run()
{
CConsole.pw.println("Stopping alarm.");
fSchedFuture.cancel(doNotInterruptIfRunningFlag);
executorService.shutdown();
}
private ScheduledFuture> fSchedFuture;
}
编辑:当然,当我们使用类似的通用类型标记时,它必须出现在类声明中。这里也没有,也没有>在类的声明,但它仍然可以编译和运行正常。