2012-10-18 65 views
0

我無法在運行時創建對象的名稱。我的發言是:如何在運行時創建變量名?

Map<String,String> objectName+""+lineNumber = new HashMap<String,String>(); 

它給我編譯時錯誤。我想在運行時創建HashMap對象,具體取決於行號。

+1

你怎麼做呢?向我們顯示您的代碼 –

+1

您可以改爲創建一個數組。我不認爲你正在努力實現的是可能的! –

+3

這是不可能的。你能解釋一下你的問題的背景 - 你想通過這樣做來達到什麼目的?另外,對象沒有名稱。變量有名字。 – Jesper

回答

1

Java不是解釋性的,而是一種編譯語言。所以編譯器不知道如何處理這個。這樣的事情在腳本語言中可能是有意義的。

如果你需要一個「變量」也許類似下面的結構可能是有意義的自定義名稱:

Map<String,Map<String,String>> varMap = new HashMap<String,Map<String,String>>(); 
varMap.put(objectName+" "+lineNumber, new HashMap<String, String>()); 
-1

使動態對象名稱爲「無使用」。

首先,不可能爲動態名稱提供參考。更大的問題是你爲什麼想這樣做?

如果只是爲了學習和做實驗,我會建議你應該遵循適當的練習。

但是,如果你正試圖達到一些項目的要求,請。解釋要求。還有其他方法可以實現這一點。

0

您不能直接在Java中做到這一點(沒有重大的招數)

一下就可以了(也許應該)做的事:

把你的地圖在另一個地圖它具有「變量」名關鍵。

如果你真的想這樣做,你必須做代碼生成。對於這一次你有多種選擇: