这个问题在这里已经有答案了:
使用字符串值作为变量名[重复](5个答案)
上个月关门了。
我只是简化我的代码,我遇到了一个小问题,我不能解决。所以我有一个活动,它有一个getter,比如:
private String[][] Example001 ={{"String1","String2"},{"Light","Normal","Heavy"}};
public String getExerciseValue(String variableName ,int codeOrValue,int type){
switch (variableName){
case "Example001":
return Example001[codeOrValue][type];
case "Example999"
return Example999[codeOrValue][type];
}
return "default";
}
因此,我宁愿通过这样的方式简化代码,而不是大量的案例
public String getExerciseValue(String variableName ,int codeOrValue,int type){
return variableName[codeOrValue][type];
}
我问了一个例子,工作代码工作的情况下,因为我不知道如何解决这个问题。感谢您的建议:)
3条答案
按热度按时间ttp71kqs1#
是的,反射是可能的。
与
this.getClass().getDeclaredField("attributeNameAsString");
您可以通过将属性名作为字符串传递(问题中的“variablename”)来访问类的所有属性。下面是使用反射的示例代码:
guykilcj2#
这在java中是不可能的。然而,这也是没有必要的。
每当您有一系列编号的变量名时,这实际上只是实现数组的一种非常麻烦的方法:
slwdgvem3#
建议您使用hashmap,并将每个数组作为一个值,其中包含您的首选名称。类似于:
然后,您可以根据需要轻松地检索元素及其名称和索引。