以下是代码段:
int[] cdb1 = {2,1,1,5,5};
int[] cbd2 = {3,1,1,2,2,6,6};
int[] cbd3 = {3,2,2,3,3,7,7};
int[] cbd4 = {2,3,3,4,4};
int[] cbd5 = {4,4,4,5,5,6,6,7,7};
String this_cdb = "cdb"+Integer.toString(router_id);
int this_cbd_number = this_cdb[0];
我收到以下错误:需要数组,但找到了String
int this_cbd_number = this_cdb[0];
此处router_id
可以是1
2
3
4
或5
。我知道我宣布this_cdb
为String
。但是如何将它引用到正确的数组名称?
答案 0 :(得分:3)
如果没有反射,则无法从String中引用其他变量/字段/类。
你需要封装你的数组,例如在另一个数组或List
内。示例(假设路由器是从1
索引的):
int[] cdb1 = {2,1,1,5,5};
int[] cbd2 = {3,1,1,2,2,6,6};
int[] cbd3 = {3,2,2,3,3,7,7};
int[] cbd4 = {2,3,3,4,4};
int[] cbd5 = {4,4,4,5,5,6,6,7,7};
int[][] cdb = {cdb1, cdb2, cdb3, cdb4, cdb5};
int this_cbd_number = cdb[router_id - 1][0];
答案 1 :(得分:1)
尝试将所有数组放入某种数据结构中,例如LinkedList:
LinkedList<int[]> arrayList = new LinkedList<>();
arrayList.add(cdb1);
arrayList.add(cdb2);
arrayList.add(cdb3);
arrayList.add(cdb4);
arrayList.add(cdb5);
int this_cbd_number = arrayList.get(router_id)[0];