我有多个变量名为label1,label2等(所有字符串),我想知道是否有办法迭代所有这些变量(最多为label9)以检查它们是否与某个字符串" x&# 34;或" o"。到目前为止,我所能做的就是要有多个if语句来检查它们,或者将它们全部放入一个数组中并以这种方式检查它们。感谢。
答案 0 :(得分:0)
编号变量意味着您应该实际使用数组或列表。
然后label1
变为label[1]
或label.get(1)
,您可以轻松进行迭代。
但如果你真的想要,你可以使用反射:
String label1 = "foo";
String label2 = "bar";
String label3 = "x";
private void printAll() {
for (Field f : this.getClass().getDeclaredFields()) {
if (f.getName().matches("label[1-9]")) {
try {
String value = (String) f.get(this);
if (value.equals("x")) {
System.out.println(f.getName() + " is x");
}
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
}