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")値はOK文字列ですが、それを比較するres.getString("status") == "OK"と返されますfalse。実際にはresults.putString("status", "OK");inServerAuthenticate.signIn()関数のメソッドを使用します。

のプロパティ値を比較する方法はあるのだろうWritableMapか?

4

1 に答える 1

1

これは、標準の Java String equals 問題です。res.getString("status").equals("OK")null の安全性を高めるには、 or を試してください"OK".equals(res.getString("status"))

Java String.equals と ==も参照してください。

于 2016-07-11T10:17:35.900 に答える