I am getting an error in Eclipse Java. My code is:
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;
}
I get the error startTime cannot be resolved to a variable
when I save it. Is it possible that because it is separated into separate if
statements, it does not get the variable? I am coding a Bukkit Minecraft plugin.
How do I fix this error?
You must instantiate the variables like so:
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;
}
However, since you use the startTime
in every case, you can just instantiate it outside of the if statements. You also never defined endTime
in some cases, so here is the fully revised code.
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;
}