为什么我的变量没有在 Java 中解析?
Why isn't my variable being resolved in 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 (args[0].equalsIgnoreCase("begin")) {
long startTime=0;
startTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("stop")) {
long endTime=0;
endTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("timer")) {
long currentTime=0;
long currentTimeForm=0;
currentTime = (System.currentTimeMillis() / 1000);
currentTimeForm = currentTime - startTime;
}
但是,由于您在每种情况下都使用 startTime
,因此您可以在 if 语句之外对其进行实例化。在某些情况下您也从未定义 endTime
,因此这里是完全修改后的代码。
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;
}
在 if 级联之外声明变量,或者作为 class 的成员;您的问题上下文太少,无法更准确
long startTime;
long endTime;
long currentTime;
long currentTimeForm;
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;
}
我在 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 (args[0].equalsIgnoreCase("begin")) {
long startTime=0;
startTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("stop")) {
long endTime=0;
endTime = (System.currentTimeMillis() / 1000);
} else if (args[1].equalsIgnoreCase("timer")) {
long currentTime=0;
long currentTimeForm=0;
currentTime = (System.currentTimeMillis() / 1000);
currentTimeForm = currentTime - startTime;
}
但是,由于您在每种情况下都使用 startTime
,因此您可以在 if 语句之外对其进行实例化。在某些情况下您也从未定义 endTime
,因此这里是完全修改后的代码。
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;
}
在 if 级联之外声明变量,或者作为 class 的成员;您的问题上下文太少,无法更准确
long startTime;
long endTime;
long currentTime;
long currentTimeForm;
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;
}