HashMap / Map的自定义条目

时间:2013-03-08 13:05:10

标签: java map hashmap

每个人都熟悉Java的类概念。每个类都能够保存属性。我希望这些属性是动态的,这意味着我想构建一个包含variablename->值条目的Map。

因此,我的想法是自定义Map接口(使用AbstractMap或HashMap)来创建自定义ClassAttributesMap。此映射应提供类似“attributesMap.put(new CustomEntry());”的方法。通常,像HashMap这样的Map实现提供了一个put方法,但它是“put(Object key,Object value);”。

我为我解决了。非常感谢您的提示!

以下是符合我要求的代码:

public static void main(String args[]){
    DynAttClass dynClass = new DynAttClass();
    dynClass.keyset();
}

public class DynAttClass {

    private HashMap<DynAttributes, Object> attributesMap = new HashMap();

    public DynAttClass() {
        attributesMap.put(DynAttributes.var1, "value1");
        attributesMap.put(DynAttributes.var2, new Integer());
        attributesMap.put(DynAttributes.var3, new CustomObject());
    }

     //you can delegate the HashMap methods here, for example:
     public Set<DynAttributes> keySet() {
         return attributesMap.keySet();
     }

}

public enum DynAttributes {
    var1, var2, var3;
}

1 个答案:

答案 0 :(得分:0)

您建议使用CustomEntry,因此我假设您不能简单地使用Map.put

如果你需要Map.put(CustomEntry e)方法,你可以简单地创建一个扩展HashMap的新类,并将该方法添加到它,它是常规put(key, val)的适配器