在 Java 的 Nashorn 引擎中,当你评估代码时,如果你这样做
var e = Packages.org.bukkit["event"]
e 将为空。
但是,我发现的一件事是,如果我这样做
var anothervar = Packages.org.bukkit.event
var e = Packages.org.bukkit["event"]
e(以及 anothervar)将是 org.bukkit.event 包。
为什么 Nashorn 有它,所以在我访问带有点表示法的包后,它会开始使用括号表示法?
最佳答案
根据我的观察,它是一个 Java 8 bug ,所以与此同时,一个骇人听闻的解决方法是用点符号评估包
例如
eval("Packages.org.bukkit."+"event.server"); //or whatever variable it may be
编辑
错误已修复,现在应该可以使用了。
关于javascript - Nashorn:奇怪的包裹返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105184/