Java -在实体中定义未知数量的变量



我需要一个名为DynamicEntity的实体,例如,我必须在其中定义未知数量的变量及其setter和getter。变量必须有一个我想给它们的名字,所以我得到了:

主类:

public class Main {
public static void main(String[] args) {
    DynamicEntity dynamic = new DynamicEntity();
    dynamic.parseVariable("int");
}
}

和DynamicEntity类:

public class DynamicEntity {
public void parseVariable(String text) {
    String[] tokens = text.split("-");
    String variableType = tokens[0];
    String variableName = tokens[1];
    if (variableType.equals("int")) {
        int variableName = 0;
    }
}
}

这个变量肯定不会被接受,因为它已经定义了。

问题是我不希望IF内部的变量被称为variableName,我希望变量被称为令牌内部的what[1]。

当然为每个新添加的变量创建setter和getter,我不知道该怎么做。

您可以从Map结构中获益。其中键是成员的名称,值是成员的值。

一个简单的概念示例:

class Dynamic { 
  private final Map<String,Object> members = new HashMap<>();
  public void setMember(String name, Object value) {
      members.put(name,value);
  }
  public Object getMember(String name) {
     return members.get(name);
  } 
}

最新更新