Cemi Skrevet 24. mars 2010 Skrevet 24. mars 2010 Jeg arbeider med en oppgave til skolen, hvor programmet vi lager kun er metodene, men vi lager aldri slik at det faktisk er kjørbart så man kan få testet det. Derfor lurer jeg på om dette er mulig: if (riktig.size() > -1){ String returner = " "; for (int k = 0; riktig.size() > k; k++ ){ returner = returner + "/n" + riktig.get(k).getId() +":"+riktig.get(k).getNavn()+":"+riktig.get(k).getEier(); } return returner; } else { return "Ikke registrert noen."; } Da er det den delen i for løkken jeg lurer på om vil fungere? Vil jeg få en string med flere linjer? "riktig" er en arraylist med alle objektene som stemmer med det tenkte søket.
Patton Skrevet 24. mars 2010 Skrevet 24. mars 2010 Du vil få en string med flere linjer, men her trengs det litt optimering. Første linja er alltid tom med mellomrom som eneste tegn (vet ikke hvorfor du instansierer en string med ett mellomrom, en tom string er vel bedre?), noe som du bør fikse. Dessuten er ArrayList.size() alltid større enn -1 (0 hvis lista er tom), så "Ikke registrert noen" vil aldri returneres.
Cemi Skrevet 24. mars 2010 Forfatter Skrevet 24. mars 2010 Dersom jeg ikke sattse stringen til " " fikk jeg eclipse "String returner may not have been initialized" av en eller annen grunn, selv om den ikke returneres om den ikke initialiseres. Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet. Takk for svar
Patton Skrevet 24. mars 2010 Skrevet 24. mars 2010 Dersom jeg ikke sattse stringen til " " fikk jeg eclipse "String returner may not have been initialized" av en eller annen grunn, selv om den ikke returneres om den ikke initialiseres. Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet. Takk for svar Jeg mener: String returner = ""; istedenfor String returner = " "; "String returner may not have been initialized" får du hvis deklarer som følgende: String returner;
Cemi Skrevet 25. mars 2010 Forfatter Skrevet 25. mars 2010 Aha, vet egentlig ikke hvorfor jeg har mellomrom der nei. Siden den legges til i begynnelsen av return stringen er det nok lurt å fjerne den ja. Takk
miXer Skrevet 25. mars 2010 Skrevet 25. mars 2010 (endret) Trodde arraylist.size 0 når den inneholder 1, men det er muligens jeg forveksler med noe annet. Arrays er 0 basert. Første element finner du på plass 0, men size() returnerer det faktiske antallet elementer i arrayet, altså 1 basert. F.eks: String[] arr = { "arr1", "arr2" }; arr[0] vil gi "arr1" arr[1] vil gi "arr2" size() vil gi 2 Endret 25. mars 2010 av miXer
GeirGrusom Skrevet 27. mars 2010 Skrevet 27. mars 2010 Når variabler ikke er initialisert er innholdet udefinert. Det er derfor en feil å returnere en variabel som ikke initialisert.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå