サイ、typeof演算およびオートボクシング混乱
-
27-09-2019 - |
質問
(サイを使用しています)SmartfoxServerするためのサーバ側の拡張で
私はこれに類似のJavascriptの作品を持っています:
response["xpos"] = properties.get("xpos");
send(JSON.stringify(response));
このエラーを引き起こしました。何が起こった?プロパティは、Java Map
があるので数がそれに置かれたとき、それはjava.lang.Double
オブジェクトにautoboxedています。それを取得し、response["xpos"]
に格納する際にしたがって、その結果は、通常のJavascriptの数が、型JavaObject
のjava.lang.Double
ではありません。 JSON.stringify
機能があることを処理するためのもの、それがクラッシュしていませんでした。
私はこのようなハックでそれを固定します:
response["xpos"] = 1.0 * properties.get("xpos");
send(JSON.stringify(response));
は、より良い方法はありますか?
解決
次の対話型コンソールセッションのように、Number(properties.get("xpos"))
を使用することができます
js> x=java.lang.Double(2)
2.0
js> typeof x
object
js> x instanceof java.lang.Double
true
js> y=Number(x)
2
js> typeof y
number
これは、文字列は、一般的にだけでなくネイティブJavaScriptの文字列にjava.lang.StringでからRhinoで変換する方法である。
所属していません StackOverflow