Тема: Чому не справджується умова ?
Є така проблемка, не справджується умова при тому, що два значення рівні.
Є ось така от умова:
if(sha1Hash == "53c1f6ee200f106be72db3ecd086b4de8e1e66bd")
{
true
}
else
{
false
}
А ось повний код:
public void login(String userName, String password) {
try {
String md5Hash = LauncherFrame.getChecksum(Util.getWorkingDirectory() + File.separator + "bin" + File.separator + "minecraft.jar", "MD5");
String sha1Hash = LauncherFrame.getChecksum(Util.getWorkingDirectory() + File.separator + "bin" + File.separator + "minecraft.jar", "SHA1");
if(sha1Hash == "53c1f6ee200f106be72db3ecd086b4de8e1e66bd")
{
String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + 1 + "&hash=" + URLEncoder.encode(md5Hash, "UTF-8");
String result = Util.excutePost("http://секретно/bukkit_server/xAuth.php", parameters);
if (result == null) {
showError("Неможливо підключитися до сервера");
loginForm.setNoNetwork();
return;
}
if (!result.contains(":")) {
if (result.trim().equals("Bad login")) {
showError("Невірний логін або пароль");
} else if (result.trim().equals("Old version")) {
loginForm.setOutdated();
showError("Потрібно оновити лаунчер");
} else {
showError(result);
}
loginForm.setNoNetwork();
return;
}
String[] values = result.split(":");
launcher = new Launcher();
launcher.customParameters.putAll(customParameters);
launcher.customParameters.put("userName", values[2].trim());
launcher.customParameters.put("latestVersion", values[0].trim());
launcher.customParameters.put("downloadTicket", values[1].trim());
launcher.customParameters.put("sessionId", values[3].trim());
launcher.init();
removeAll();
add(launcher, "Center");
validate();
launcher.start();
loginForm.loginOk();
loginForm = null;
setTitle("Minecraft");
}
else
{
//loginForm.setOutdated();
showError(sha1Hash);
}
} catch (Exception e) {
e.printStackTrace();
showError(e.toString());
loginForm.setNoNetwork();
}
}
Змінна sha1Hash отримує таке саме значення, як вписано при порівнянні, але при тому умова не справджується.
В чому може бути причина ?
P.S: але якщо змінній sha1Hash зразу присвоїти значення
53c1f6ee200f106be72db3ecd086b4de8e1e66bd
, а не присвоювати результат
LauncherFrame.getChecksum(Util.getWorkingDirectory() + File.separator + "bin" + File.separator + "minecraft.jar", "SHA1")
то умова справджується.