//"import"
var StringTokenizer = java.util.StringTokenizer;
print(typeof StringTokenizer);
var st = new StringTokenizer("this is a test");
print(typeof st);
java.util.StringTokenizer.prototype.name = 'myST';
print(st.name);
结果如下:
testObj.js:9 TypeError: Cannot set property "name" of undefined
# 1 楼答案
看起来它尽最大努力返回可感知的对象。使用此代码,然后更改XXX:
收益率:
# 2 楼答案
看起来是这样的,即使Java对象可以在JS代码中使用,它仍然引用Java对象(尽管它们显示为函数对象,因此必须有一个包装器),我们不能将它们视为Javascript对象:
结果如下:
现在Javascript对象将作为“jdk.nashorn.internal.scripts.JO”实例加载
*如果您想更轻松地测试上述代码,只需为JDK的
jjs
(Nashorn解释器)创建一个别名,例如,如果您创建一个名为test.js
的文件,您可以使用以下工具运行该程序:Mac OS=
alias jjs=’/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/bin/jjs’
Windows=定义一个名为“JAVA8_HOME”的环境变量并指向您的jdk8文件夹,然后您可以通过运行以下命令调用jjs: