我需要一个名为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);
}
}