2014-02-12 49 views
0

創建具有名稱值的屬性我有一個包含值的String,說「test」。 現在我需要創建一個Properties於文件名的String值。 爲了清楚起見,在一個字符串

String propName = "test"; 

我需要其可以創建以下的邏輯:

Properties test = new Properties(); 

之所以這樣要求:我的String陣列,其Properties必須被創建。

+0

你不能在Java中做到這一點。 – Maroun

+0

我認爲你必須在Java中使用某種反射才能做到這一點。 http://docs.oracle.com/javase/tutorial/reflect/ –

+0

您可以將屬性存儲在由屬性名稱字符串索引的地圖中。 –

回答

2

此要求的原因:我有一個字符串數組,其 屬性必須創建。

您可以使用Map<String, Properties>來實現。

Map<String, Properties> myMap = new HashMap<>(); 
myMap.put("test", new Properties()); 
+0

那麼你會如何調用getProperty()? –

+1

@KarthikVU'myMap.get(「test」)。getProperty()'? –

+0

謝謝:) :) –

1

目前尚不清楚你打算如何添加值每個Properties,所以我會認爲你只是想要一些默認值了。

String[] keys = { "test1", "test2", "test3" }; 
Properties props = new Properties(); 

for (String k: keys) { 
    props.put(k, "some value"); 
} 

// Prints out the property value 
System.out.println("Value of test2 property: " + props.getProperty("test2")); 

你只需要一個單一的對象Property存儲多個密鑰 - >值Strings作爲屬性。

+1

+1這也可能是解決方案,它不是100%清楚運算的要求。 –

+0

我很抱歉,但問題是,從數組中創建一個新的屬性。這裏我們在單個屬性中創建值。 –

+0

這裏沒有任何答案能完全給你你所要求的。你問的是如何從一個字符串數組中生成* variable *名字。實現你最初要求的唯一方法是編譯時代碼的一種形式。 – willjcroz