14. oktober 2005 - 11:41Der er
29 kommentarer og 1 løsning
ArrayList til Array
Hej eksperter!
Jeg har et tilsyneladende enkelt problem. Jeg skal have lavet et ArrayList om til et string array. Enkelt, man bruger bare toArray! Men af en eller anden grund for jeg ikke noget brugbart returneret. Her er et uddrag af koden:
ArrayList kategorier=kontantSalgHandler.enterMærke(maerke); System.out.println("KontantSalg01 kategorier: "+kategorier); String[] array = new String[kategorier.size()]; kategorier.toArray(array); System.out.println("List to Array: " + array);
Og her er hvad jeg får ud af det:
KontantSalg01 kategorier: [Vælg Kategori, Lastbil] List to Array: [Ljava.lang.String;@14f8dab
Som man kan se indeholder ArrayListen kategorier tekst, men hvorfor kan jeg ikke få konverteret det om til et string array? Er der evt. nogen der har et forslag til, hvordan man opretter sin egen toArray-metode?
Hvis jeg bruger dit andet forslag således: array = (String[]) kategorier.toArray(array);, er jeg tilbage ved det oprindelig problem, hvor indeholded af string array'et bliver noget lig [Ljava.lang.String;@14f8dab.
output fra toArray er et Object[] det kan ikke rigtig være anderledes. for at lave et String[] må du flytte de Object'er der er i din arraylist eet ad gangen med en cast enten Object[] nytArray = kategorier.toArray(); eller String[] nytArray = new String[kategorier.size()]; for(int i=0; i<nytArray.length; i++) { nytArray[i] = (String)kategorier.get(i); }
ved at bruge kalps og mikkelbms eksempler, kan jeg få arrayet printet ordentligt ud. Så vidt så godt! Men hvordan kan jeg få det til at stå i en comboBox? Jakoba's forslag er umiddelbart vejen frem, men resultatet bliver en IndexOutOfBoundsException! :(
Det var dog utroligt! Nu slipper jeg for OutOfBoundsException, men sidder tilbage med det samme problem: comboBox'en indeholder "[Ljava.lang.String;@14f8dab"... Andre forslag?
Jeg har flere comboBox'e, hvor indholdet i den anden comboBox skal reflektere et valg foretaget i den første comboBox. Den første comboBox virker fint nok. Men når jeg vælger noget fra listen i den første comboBox, får jeg teksten "[Ljava.lang.String;@14f8dab" (eller lignende) i den næste comboBox. Navnet på den anden comboBox er "getVælgMærke", og som I kan se nederst i koden bruger jeg "getVælgKategori().addItem(array) til at tilføje informationerne til den næste comboBox. Dette er noget jeg har forsøgt mig frem til, og det er måske ikke den rigtige metode? Måske det er her problemet ligger?
Ja, weekenden kom på et ubelejligt tidspunkt, så jeg har ikke fået kigget ordentligt på dit eksempel. I mellemtiden har en anden fra min projekt-gruppe fundet frem til en anden løsning, som vi så vil bruge. Men jeg vil da gerne belønne dig for din hjælp, some jeg er sikker på andre også kan få glæde af, så hvis du lige vil lægge et svar, er pointene dine. :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.