在Java的Nashorn引擎中,当你评估代码时,如果你这样做
var e = Packages.org.bukkit["event"]
e将为null。
但是,我发现的一件事是,如果我这样做
var anothervar = Packages.org.bukkit.event
var e = Packages.org.bukkit["event"]
e(以及anothervar)将是org.bukkit.event包。
为什么Nashorn在使用点表示法访问包后会这样做,它会开始使用括号表示法吗?
答案 0 :(得分:1)
从我所看到的,它是Java 8 bug,所以在此期间,一个hackish解决方法可以用点符号评估包
e.g。
eval("Packages.org.bukkit."+"event.server"); //or whatever variable it may be
修改强>
错误已修复,因此它现在应该可以正常工作。