你可以嘗試像這樣:
class Prop{
public enum Properties {
Name,
Address,
City
}
Map<Properties, String> propertyMap;
public Prop() {
this.propertyMap = new HashMap<Properties, String>();
}
public void String setValue(Properties prop, String value){
this.propertyMap.put(prop, value);
}
public void String getValue(Properties prop){
return this.propertyMap(prop);
}
}
要添加值:
Prop prop = new Prop();
...
prop.setValue(prop.Properties.Name, "Bob");
...
String name = prop.getValue(prop.Properties.Name); //Should be Bob, assuming it did not change.
編輯: 根據你查詢,你可以這樣做:
class Prop{
Map<String, String> propertyMap;
public Prop() {
this.propertyMap = new HashMap<String, String>();
}
public void String setValue(String prop, String value){
this.propertyMap.put(prop, value);
}
public void String getValue(String prop){
return this.propertyMap(prop);
}
}
的問題這種方法是誰在呼喚你的代碼必須猜測或稍微有某種先驗知識的調用你的代碼。通過枚舉,您可以預先提供地圖所具有的屬性。
在getValue()函數中沒有任何方式傳遞參數String? – 2015-02-23 12:33:22
@ user3697669:我已經更新了我的答案。如果你走這條路,我仍然建議你堅持枚舉。 – npinti 2015-02-23 12:43:50
y我也這麼認爲:P謝謝@npinti – 2015-02-23 13:17:32