投稿日: 2015/12/05 14:33:35
typeofを使うと、java.lang.Integerもjava.math.BigDecimalも"number"が返されます。
1. 実行するスクリプト(typeOfNumber.js)
function assertEq(f,x) {var r=f();if(r!==x)throw new Error(f.toSource()+", expected=${x}, actual=${r}");}var Integer = Java.type("java.lang.Integer");var BigDecimal = Java.type("java.math.BigDecimal");assertEq(function() typeof 100, "number");assertEq(function() typeof Integer.valueOf(200), "number");try { assertEq(function() typeof BigDecimal.ONE, "object"); } catch(e) { print(e); }2. jjsで実行する
>jjs -scripting -fullversion typeOfNumber.jsnashorn full version 1.8.0_66-b18Error: function() typeof BigDecimal.ONE, expected=object, actual=number