eRaIzoR Skrevet 31. mars 2008 Del Skrevet 31. mars 2008 Hei! Trenger litt input! Skjønner ikke helt hvorfor null pointer eception oppstår i denne metoden.Jeg har opprettet objekter til tabellen, og metoden hentPatruljeNavn() fungerer om jeg kjører den i main utenfor denne metoden. Så hva er galt? static int patruljeFinnes(String patrNavn, int tallObjekt) { boolean funnet = false; int i = 0; while (i <= tallObjekt && !funnet){ if (patrNavn.equals(patruljer[i].hentPatruljeNavn())) { <--- her funnet = true; } i++; } return i; } Her er all koden. import java.util.Scanner; class patrulje { //konstruktør patrulje(int i) { patruljeNavn = "ikkeregistrert"; patruljePoster = 0; bestNavn = ""; bestPoster = 0; } patrulje(String patrNavn) { patruljeNavn = patrNavn; patruljePoster = 0; bestNavn = ""; bestPoster = 0; } // statiske variabler //feltvariabler String patruljeNavn; //navn på patruljen int patruljePoster; //hvor mange poster patruljen har funnet String bestNavn; //person med flest poster int bestPoster; //ant poster til best person //instansmetoder boolean registrer(String navn, int posterFunnet) { patruljePoster = patruljePoster + posterFunnet; if (posterFunnet > patruljePoster) { navn = bestNavn; posterFunnet = bestPoster; } return (posterFunnet > patruljePoster); } String hentPatruljeNavn() { return patruljeNavn; } int hentTallPoster() { return patruljePoster; } } public class orientering { //Tabell som tar vare på informasjon om patruljene static patrulje[] patruljer; static int patruljeFinnes(String patrNavn, int tallObjekt) { boolean funnet = false; int i = 0; while (i <= tallObjekt && !funnet){ if (patrNavn.equals(patruljer[i].hentPatruljeNavn())) { funnet = true; } i++; } return i; } static void flestPoster() { int flestPoster = 0; for (int i = 0; i < patruljer.length; i++) { if (patruljer[i].hentTallPoster() > flestPoster) flestPoster = patruljer[i].hentTallPoster(); } System.out.println("Største antall poster for en patrulje er " + flestPoster); System.out.println("Dette ble funnet av patruljene under"); for (int i = 0; i < patruljer.length; i++) { if (patruljer[i].hentTallPoster() == flestPoster) System.out.println(patruljer[i].hentPatruljeNavn()); } } public static void main(String[] args) { String patruljeNavn; String navn; int sistPoster; int antPatruljer; Scanner tastatur = new Scanner(System.in); System.out.print("Hvor mange patruljer er det på leiren? "); antPatruljer = tastatur.nextInt(); patrulje[] patruljer = new patrulje[antPatruljer]; // oppretter tabell for patruljene for (int i = 0; i < patruljer.length; i++) { patruljer[i] = new patrulje("testpatrulje"); } if (patruljer[0] == null) System.out.print("patruljer ikke opprettet"); System.out.println("Du kan nå begynne å registrere"); System.out.println("Avslutt med navn = ferdig"); System.out.print("Skriv navn på speider, patrulje og antall funnet poster "); navn = tastatur.next(); int nyPatrIndex = 0; while(!navn.equals("ferdig")) { patruljeNavn = tastatur.next(); sistPoster = tastatur.nextInt(); if (patruljeFinnes(patruljeNavn, nyPatrIndex) == -1) { //oppretter ny patrulje System.out.print("-1"); patruljer[nyPatrIndex] = new patrulje(patruljeNavn); nyPatrIndex++; System.out.println("Ny patrulje opprettet"); } //registrerer poster hos patruljen patruljer[(patruljeFinnes(patruljeNavn, nyPatrIndex))].registrer(navn, sistPoster); if (patruljer[(patruljeFinnes(patruljeNavn, nyPatrIndex))].registrer(navn, sistPoster)) System.out.println("Ny bestenotering i patruljen"); System.out.print("Skriv navn på speider, patrulje og antall funnet poster"); navn = tastatur.next(); } //slutt whileløkke System.out.println("Det er registrert speidere fra" + nyPatrIndex + " patruljer"); flestPoster(); } //slutt main } Lenke til kommentar
pgdx Skrevet 31. mars 2008 Del Skrevet 31. mars 2008 Kan du printe stacktracen? Vanskelig å si akkurat hvor feilen ligger uten. I tillegg kan du gjerne lese litt opp på navnekonvensjoner for Java, som store bokstaver i klassenavn. patruljer[] patruljer blir aldri initialisert: Patruljer[] patruljer = new Patruljer[antallPatruljer]; Lenke til kommentar
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å