2016-04-09 7 views
1

Das Folgende ist der Code-Schnipsel:Java - Referenzierung auf einem Array

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

ich die folgende Fehlermeldung erhalten: Array erforderlich, aber String gefunden int this_cbd_number = this_cdb[0];

hier router_id1 sein kann 234 oder 5. Ich weiß, dass ich this_cdb als String erklärt habe. Aber wie verweise ich es auf den richtigen Array-Namen?

Antwort

3

Ohne Reflexion können Sie keine Verweise tun zu anderen Variablen/Felder/Klassen aus einem String. Sie müssten Ihre Arrays z. in einem anderen Array oder einem List. Beispiel (angenommen Router ist von 1 indiziert):

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

sollte es [router_id-1] richtig sein? – hnvasa

+0

ja, du hast Recht, korrigiert –

1

versuchen, alle Felder vollständig in eine Art einer Datenstruktur, wie ein LinkedList setzen:

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