在Java中调用获取时间的方法

在Java中调用获取时间的方法,java,methods,time,Java,Methods,Time,我在Java程序中计算时间时遇到问题。当我的对话框出现时,我想知道用户按下按钮之前的时间 我正在考虑通过调用一个方法来实现这一点。当对话框打开时,我将调用整数为1的方法。这就是我存储当前时间的方式 当按下按钮时,我调用整数为2的方法。这就是为什么我将当前时间存储到另一个变量,然后返回time2-time1作为总时间 我需要有关该方法概念的帮助 public long counttime(int t) { long startTime; long endTime; long

我在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;
}

想象一下
t
是3,那么
totalTime
是什么呢?这就是编译器要问的。是的,我知道。但是,当我尝试使用整数2运行它时,它将再次使用new声明的starttime,而不是以前调用的方法更改的变量。对不起,我的英语不好。而且,这也不行。每个方法调用都有自己的开始和结束时间,因为它们是局部变量。要做到这一点,开始时间和结束时间必须存储为对象的实例字段!非常感谢你的时间和回答!