2015-05-27 51 views
0

訪問我的數據庫,有幾個領域:Java - 如何訪問具有動態名稱的變量?

  • rabbit2013
  • rabbit2014
  • rabbit2015

我試圖用Java創建一個程序來讀取變量當前年份(rabbit2015)。我的變數爲year。我如何返回"rabbit"+year的價值?

我試過,但不起作用:

ScriptEngineManager manager = new ScriptEngineManager(); 
ScriptEngine engine = manager.getEngineByName("js"); 
Object result = null; 
try { 
    result = engine.eval("rabbit"+year); 
} 
catch (ScriptException e){ 
    e.printStackTrace(); 
} 
System.out.println(result); 

你有什麼想法?

編輯:

Error : ReferenceError: "rabbit2015" is not defined in <eval> at line number 1 
+0

你會得到什麼錯誤? –

+0

sry,看看編輯plz :) –

+0

@Antoine你如何將數據庫連接到'engine'? – Biffen

回答

0
result = engine.eval("\"rabbit\"+year"); 

你有它的方式,Java是評估 「兔子」 +一年,然後傳遞一個到eval方法。

假設「年」是一個java變量,你也需要把它放在了ScriptEngine的結合...

Bindings bindings = engine.createBindings(); 
    bindings.put("year", year); 

然後傳遞綁定在作爲第二個參數,當你調用的eval( )...

result = engine.eval("\"rabbit\"+year", bindings); 
+0

這是一樣的,但感謝您的幫助:) –

+0

我意識到...檢查修訂後的答案 –

+0

謝謝,現在說我:ReferenceError:「年」沒有定義在行1號 –

0

我發現我的問題的答案:
PS:當我跟你有關RABiTS基帶上,它是例子,這裏的「aRealiserEn」 +一年
我想我是不是不夠好解釋我的問題em(promiss我會做得更好)。我感謝所有花時間閱讀我並回答我的人(尤其是Phil AndersonBiffen)。

solutions's code