2014-01-14 46 views
4

在Java中的犀牛引擎的返回,當你的eval代碼,如果你這樣做犀牛:奇怪的包

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

Ë將是無效的。

但是,有一兩件事,我發現是,如果我這樣做

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

E(以及anothervar)將是org.bukkit.event包。

爲什麼Nashorn在使用點符號訪問包後會這樣做,它將開始使用括號表示法?

+0

請勿使用圖像進行總結。把文字放在你的問題中。 – meagar

+0

@meagar我剛剛編輯它。我發現它真的......愚蠢的(因爲缺乏一個更好的詞)在這裏人們只是因爲它的措辭不當而使得問題變得不合時宜。他們可以簡單地通過建議編輯或評論它(就像你做的那樣)來幫助它,而不是簡單地對其進行降級。 – Ivan

+0

呃,因爲這是downvotes的主要目的之一。將鼠標懸停在任何問題的向下箭頭上,就會發現「不清楚」是降低投票的主要標準之一。 downvote並不意味着「你吸」或「迷路」,它表示你的問題要麼寫得不好,要麼沒有用,要麼沒有足夠的努力,或者兩者兼而有之。你只收到一個倒下。無論如何,這個問題在編輯之後有了很大的改進。我剛剛投了第四次重新投票,還有一次,它將重新開放。 –

回答

1

從我所期待的,它是一個Java 8 bug,所以在此期間,一個hackish的解決方法可以是EVAL-ING與點符號

例如包

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

編輯

這個bug已經修復,所以它應該現在的工作。