我需要一个名为DynamicEntity的实体,其中我必须使用setter和getter定义一个UNKNOWN数量的变量。变量必须有一个我想给它们的名字,所以为此我得到了:
主要班级:
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;
}
}
}
由于已经定义了variableName,因此不会接受variableName。
问题是我不希望IF中的变量被称为variableName,我希望变量被称为标记内的最新内容[1]。
当然,为每个添加的新变量创建setter和getter,我不知道该怎么做。
答案 0 :(得分:3)
您可以从地图结构中受益。作为键的位置,您将成员的名称和值作为值。
一个简单的概念示例:
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);
}
}