0

我尝试比较异步函数的结果,如下所示:

WritableMap res;
res = ServerAuthenticate.signIn(userName, userPass);

Log.d(TAG, " --> res.getString(status).length(): " + res.getString("status").length());
Log.d(TAG, " --> res.getString(status): " + res.getString("status"));
Log.d(TAG, " --> res.getString('status') == 'OK': " + (res.getString("status") == "OK"));

上面的代码给出了以下控制台输出:

D/!NativeModules( 5899): --> res.getString(status).length(): 2
D/!NativeModules( 5899): --> res.getString(status): OK
D/!NativeModules( 5899): --> res.getString('status') == 'OK': false

res.getString("status")value 是OK字符串,但是当我将它进行比较时,res.getString("status") == "OK"它返回false. 实际上我使用的是results.putString("status", "OK");函数中的方法ServerAuthenticate.signIn()

我想知道是否有任何方法可以比较 a 的属性值WritableMap

4

1 回答 1

1

这是标准的 Java 字符串等于问题。尝试res.getString("status").equals("OK")或获得更好的 null 安全性"OK".equals(res.getString("status"))

另请参阅Java String.equals 与 ==

于 2016-07-11T10:17:35.900 回答