2016-04-09 12 views
1

コードスニペットを以下に示します。私は次のエラーを取得するJavaは - 配列への参照

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]; 

:必要な配列が、文字列が1234をすることができ ここrouter_idint this_cbd_number = this_cdb[0];

を見つけましたか5。私はthis_cdbStringと宣言しています。しかし、それを正しい配列名にどのように参照するのですか?

答えて

3

あなたは文字列から他の変数/フィールド/クラスへの参照を行うことができない反射がないと。 配列をカプセル化する必要があります。別の配列の中か、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]; 
+0

[router_id-1] right? – hnvasa

+0

はい、あなたは正しいです、修正されました –

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]; 
関連する問題