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