2014-01-14 5 views
4

В двигателе Насхорн в Java, когда вы Eval код, если вы сделаете этоNashorn: Странная возвращение пакетов

var e = Packages.org.bukkit["event"] 

е будет нулевым.

Но одна вещь, которую я нашел, что если я делаю это

var anothervar = Packages.org.bukkit.event 
var e = Packages.org.bukkit["event"] 

е (а также anothervar) будет пакет org.bukkit.event.

Почему у Nashorn есть это, поэтому после доступа к пакету с точечной нотацией он начнет работать с обозначением скобки?

+0

Не используйте изображение для подведения итогов. Поместите текст в свой вопрос. – meagar

+0

@meagar Я только что отредактировал его. Я нахожу это действительно ... глупым (из-за отсутствия лучшего слова), как люди здесь решают вопрос только потому, что он сформулирован неправильно. Они могут просто помочь, предлагая изменения или комментируя это (как и вы), вместо того, чтобы просто откладывать его. – Ivan

+0

Эх, потому что это одна из главных целей downvotes. Наведите указатель мыши на стрелку вниз по любому вопросу, и вы увидите, что «неясно» является одним из основных критериев для downvoting. Сдвиг не означает «вы сосать» или «заблудиться», он выражает мнение, что ваш вопрос либо плохо написан, либо не полезен, либо не проявляет достаточных усилий или их комбинации. И вы получили только один нижний план. Во всяком случае, вопрос значительно улучшился после редактирования. Я просто бросил четвертый повторный голос, еще один, и он будет вновь открыт. –

ответ

1

Из того, что я смотрю на, это Java 8 bug, так и в то же время, хак обходного путь может быть Eval-инга пакет с точечной нотацией

например

eval("Packages.org.bukkit."+"event.server"); //or whatever variable it may be 

EDIT

Данная ошибка была исправлена, поэтому он должен работать.