我有一个最奇怪的案例,它挑战了我对Java工作的基本方式的理解。
我有以下代码,我逐步使用调试器到“return result ==”OK“行,我希望此方法的执行完成。但它没有!如果我继续踩调试器,我看到它走到最后一行(没有抛出异常)并返回false!
任何人都可以对此有所了解吗?
protected Boolean doInBackground(Void... params) {
try
{
String json = buildJson();
String encryptedData = encrypt(json);
String base64Data = Base64.encode(encryptedData.getBytes(UTF8));
String url = webserviceUrl + "?data=" + base64Data;
String result = readUrl(url);
return (result == "OK"); // Debugger gets to here but doesn't return!
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false; // Debugger gets to here instead, and returns false!
}