誰もが Java のクラスの概念に精通しています。各クラスは属性を保持できます。この属性を動的にする必要があります。つまり、変数名 -> 値エントリを保持するマップを構築したいということです。
したがって、私の考えは、Map インターフェイスをカスタマイズして (AbstractMap または HashMap を使用)、カスタム ClassAttributesMap を作成することです。このマップは、「attributesMap.put(new CustomEntry());」のようなメソッドを提供する必要があります。通常、HashMap などの Map 実装は put メソッドを提供しますが、それは「put(オブジェクト キー、オブジェクト値);」です。
私はそれを解決しました。ヒントをありがとう!
私の要件を満たすコードは次のとおりです。
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;
}