Nashorn引擎中的.toLocaleString
.toLocaleString in Nashorn engine
我有这个测试代码片段:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Object o = engine.eval("var i = 1000; i.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' });");
System.out.println(o);
当我开始测试时,我得到了这个结果:
1000
那么,难道 Nashorn 无法执行 .toLocaleString()
函数?或者我必须做一些额外的工作才能得到它 运行?我在 google 中搜索过,但没有找到答案...
看源码好像不支持toLocaleString函数。
当您调用函数时,Nashorn 会将调用重定向到 jdk.nashorn.internal.objects.NativeNumber.toLocaleString(Object)
。此方法只是将输入对象(即数字)转换为字符串表示形式。这是代码:
public static String toLocaleString(Object self) {
return JSType.toString(getNumberValue(self));
}
这是我刚看过的版本:
C:...\java\bin>jjs -version
nashorn 1.8.0_121
我有这个测试代码片段:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Object o = engine.eval("var i = 1000; i.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' });");
System.out.println(o);
当我开始测试时,我得到了这个结果:
1000
那么,难道 Nashorn 无法执行 .toLocaleString()
函数?或者我必须做一些额外的工作才能得到它 运行?我在 google 中搜索过,但没有找到答案...
看源码好像不支持toLocaleString函数。
当您调用函数时,Nashorn 会将调用重定向到 jdk.nashorn.internal.objects.NativeNumber.toLocaleString(Object)
。此方法只是将输入对象(即数字)转换为字符串表示形式。这是代码:
public static String toLocaleString(Object self) {
return JSType.toString(getNumberValue(self));
}
这是我刚看过的版本:
C:...\java\bin>jjs -version
nashorn 1.8.0_121