我在计算Java程序中的时间时遇到麻烦。当我的对话框出现时,我想花时间直到用户按下按钮。

我正在考虑通过调用方法来做到这一点。对话框打开时,我将使用整数1调用该方法。这就是存储当前时间的方式。

当按下按钮时,我用整数2调用该方法。这就是为什么我将当前时间存储到另一个变量,然后将time2-time1作为总时间返回的原因。

我需要有关方法概念的帮助。

public long counttime(int t)
{
    long startTime;
    long endTime;
    long totalTime;

    if (t==1)
        startTime = System.currentTimeMillis();

    if (t==2)
    {
        endTime   = System.currentTimeMillis();
        totalTime = endTime - startTime;
    }

    return totalTime;
}


这让我出错。 3个变量已声明,但可能未初始化。但是,我不希望初始化这些变量,因为我希望从其他时间存储变量以便计算总时间。

如果我将它们初始化为0,则每次该方法运行时,我都会丢失之前的变量,并获得默认值

如何保留这些变量的值,并使代码按所述方式工作?

最佳答案

如果您希望它持续存在,那么您需要将(至少startTime)存储在一个字段中(并在未设置的情况下进行处理)。就像是,

private Long startTime = null;
public Long counttime(int t)
{
    if(t==1)
        startTime = System.currentTimeMillis();
    if(t==2 && startTime != null)
    {
        long endTime   = System.currentTimeMillis();
        return endTime - startTime;
    }
    return null;
}

10-05 23:11
查看更多