2011-03-28 45 views
0

我需要特定的值存儲到一個用戶名到內存中,我在想是這樣動態命名瓦爾,這樣我就可以做這樣的事情Java的:我應該如何存儲每個用戶的事情在內存

["bubby4j_falling"] = true; 

和索引它通過

["bubby4j_falling"] 

但是,這只是一個例子,我知道這是行不通的,我只是想辦法快速,簡單地獲得和店裏的東西動態。

回答

7

您想要使用帶有字符串鍵的映射,例如HashMap<String, something>

你的榜樣應該是這樣的:

Map<String, Boolean> map = new HashMap<String, Boolean>(); 
map.put("bubby4j_falling", true); 

if(map.get("bubby4j_falling")) { 
    ... 
} 

其實,在你的情況下,Set<String>會更加有用:

Set<String> fallingUsers = new HashSet<String>(); 
fallingUsers.add("bubby4j"); 

if(fallingUsers.contains("bubby4j")) { ... } 

但UF你已經有了User對象(和你應該),你最好使用Set<User>,或者甚至讓falling只是用戶對象的屬性。然後,您可以使用Map<String, User>按名稱獲取用戶對象。

1

@PaŭloEbermann的回答是現貨。

我只想指出Java語言沒有任何類似動態變量變量。所有Java變量名稱及其類型都在Java源代碼中聲明。即使反射也不會允許您在現有課程中即時創建新變量。

Java被設計爲一種靜態編程語言,如果以這種方式使用它,效果最好。 (理論上,如果你在源代碼或字節代碼生成技術方面混淆,你可以用新的變量動態地創建一個新的類,然而,這涉及到大量的工作,而不是一個明智的程序員考慮的東西爲了解決一個簡單的問題。此外,我懷疑這種方法實際上對你的特殊情況有幫助。)

相關問題