Java 的类概念大家都很熟悉。每个类都能够保存属性。我希望这个属性是动态的,这意味着我想构建一个包含变量名-> 值条目的 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;
}