作为番茄钟技术的粉丝,我正在为自己制作一个倒数计时器,以让我专注于我的家庭作业。然而,这个特定的项目不是家庭作业。:)
Stack 有很多关于在用户输入之前使用计时器来控制延迟等问题,但在独立计时器上却没有很多问题。我从朋友那里看到了这段代码,并研究了 Java 文档上的课程。
public class Stopwatch {
static int interval;
static Timer timer;
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("Input seconds => : ");
String secs = sc.nextLine();
int delay = 1000;
int period = 1000;
timer = new Timer();
interval = Integer.parseInt( secs );
System.out.println(secs);
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
System.out.println(setInterval());
}
}, delay, period);
}
private static final int setInterval()
{
if( interval== 1) timer.cancel();
return --interval;
}
}
有一些语法我不清楚。考虑:
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
System.out.println(setInterval());
}
}, delay, period);
我不明白括号和大括号是如何工作的。乍一看,鉴于scheduleAtFixedRate(TimerTask task, long delay, long period)
我可以看到delay
andperiod
参数的用法,但不是第一个参数之前的开放括号。
我的第一个参数实际上是整个代码块吗?我希望整个块都被括号包围......但事实并非如此。这是java中的常见语法吗?我以前从未遇到过它。
新 TimerTask() { public void run() { System.out.println(setInterval()); } }
我只是想澄清一下,在我开始修改更改之前我理解它。