为什么我的变量不能用Java解析?

问题描述

我在Eclipse Java中遇到错误。我的代码是:

if (args[0].equalsIgnoreCase("begin")) {
    long startTime;
    startTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("stop")) {
    long endTime;
    endTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("timer")) {
    long currentTime;
    long currentTimeForm;
    currentTime = (System.currentTimeMillis() / 1000);
    currentTimeForm = currentTime - startTime;
}

保存错误消息startTime cannot be resolved to a variable。是否可能由于将其分隔为单独的if语句而没有获取变量?我正在编写Bukkit minecraft插件

如何解决错误

解决方法

在if级联之外或作为类的成员声明变量;您的问题中的上下文太少了,无法更加准确

public class Main {

    public static void main(String[] args) {
        DAO.PeriodicTable();  // Just trying to at least print all elements on the list
    }
}
,

您必须像这样实例化变量:

startTime

但是,由于在每种情况下都使用endTime,因此只需在if语句之外实例化它即可。在某些情况下,您也从未定义 long currentTime=0; long endTime=0; if (args[0].equalsIgnoreCase("begin")) { startTime = (System.currentTimeMillis() / 1000); } else if (args[1].equalsIgnoreCase("stop")) { endTime = (System.currentTimeMillis() / 1000); } else if (args[1].equalsIgnoreCase("timer")) { currentTime = (System.currentTimeMillis() / 1000); currentTimeForm = currentTime - startTime; } ,所以这是经过完全修改的代码。

{{1}}