只有在使用字段而不是方法局部变量时才能执行此操作。
int[] digitPart_1 = { 16, 7, 9, 8, 5, 6, };
int[] digitPart_2 = { 1, 77, 98, 86, 5, 6, };
int[] digitPart_3 = { 166, 7, 49, 84, 55, 6, };
public void foo() {
for (int i = 1; i <= 3; i++) {
try {
System.out.println(getClass()
.getDeclaredField("digitPart_" + i));
} catch (Exception e) {
e.printStackTrace();
}
}
}
但是,我建议重组您的代码以使用数组数组。
int[][] digitPart = { { 16, 7, 9, 8, 5, 6, }, { 1, 77, 98, 86, 5, 6, }, { 166, 7, 49, 84, 55, 6, } };
for (int i = 0; i < 3; i++) {
System.out.println(digitPart[i]);
}
除非您有特定的低内存要求,否则我会更好地使用 java 集合来表示您的结构。
Map<String, List<Integer>> digitPart = new HashMap<String, List<Integer>>();
digitPart.put("digitPart_1", Arrays.asList( 16, 7, 9, 8, 5, 6));
digitPart.put("digitPart_2", Arrays.asList( 1, 77, 98, 86, 5, 6));
digitPart.put("digitPart_3", Arrays.asList(166, 7, 49, 84, 55, 6));
digitPart.get("digitPart_2").get(2); // 98