advertentie

Dit forum is niet langer actief. Voor vragen kun je voortaan terecht in de Vraag & Antwoord-rubriek van PCMweb.nl

 
Oud 25 January 2010, 19:02   #1
fatih252
Just Joined!
 
Geregistreerd: 25 December 2009
Berichten: 11
Standaard NullPointerException

hallo
ik heb een Klasse Planten
methode waar je alle planten kan krijgen
Code:
   public List<Plant> getPlanten() {
        for (int i = 0; i < planten.size(); i++) {
            planten.get(i);
        }
       return  null;
    }
en als ik deze methode gebruik in mijn factuur klasse:
Code:
   public void toonFactuur() {
        System.out.println("Factuur nr " + factuurNummer + " op datum van " + datum);
        System.out.println("Klant: " + bestelling.getKlant());
        System.out.println("Naam      Aantal       Prijs      Totaal");
        System.out.println(plant.getPlanten());
        }
    }

dan krijg ik:
Code:
Exception in thread "main" java.lang.NullPointerException
Factuur nr 1000 op datum van 13 maart 2010
Klant: John Nauwelaerts
Naam      Aantal       Prijs      Totaal
	at be.kdg.view.Factuur.toonFactuur(Factuur.java:29)
	at be.kdg.Run.main(Run.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
kan er iemand de fout uithalen aub?
fatih252 is offline   Met citaat antwoorden
Oud 25 January 2010, 20:44   #2
EdP
PCM Lord
 
EdP's schermafbeelding
 
Geregistreerd: 13 September 2006
Berichten: 4.261
Standaard

Ja dat is nogal logisch, want als je kijkt naar wat er achter return staat in de List methode, dan zie je ... null.
Vervolgens ga je daar iets mee doen, dan krijg je terecht een null pointer exception.

Dat moet een beetje anders dus. Als je met getPlanten iets zinnigs wilt doen, zul je die iets anders moeten laten opleveren dan null.
__________________
An error has occurred. Hit any user to continue
EdP is offline   Met citaat antwoorden
Oud 25 January 2010, 20:48   #3
KlaasB
PCM Lord
 
KlaasB's schermafbeelding
 
Geregistreerd: 2 January 2008
Locatie: zoekt in forums
Berichten: 1.738
Standaard

Ed,

da's de fout, dan nu even voor fatih de oplossing. Ik heb er geen verstand van maar ben benieuwd, wat de oplossing zou kunnen zijn.

groet, Klaas
__________________
verbaas je niet, verwonder je slechts!
KlaasB is offline   Met citaat antwoorden
Oud 25 January 2010, 20:48   #4
fatih252
Just Joined!
 
Geregistreerd: 25 December 2009
Berichten: 11
Standaard

Citaat:
Oorspronkelijk geplaatst door EdP Bekijk bericht
Ja dat is nogal logisch, want als je kijkt naar wat er achter return staat in de List methode, dan zie je ... null.
Vervolgens ga je daar iets mee doen, dan krijg je terecht een null pointer exception.

Dat moet een beetje anders dus. Als je met getPlanten iets zinnigs wilt doen, zul je die iets anders moeten laten opleveren dan null.
Wat kan ik juist doen

als ik dit probeer krijg ik ook een foutmelding
Code:
   public List<Plant> getPlanten() {
        for (int i = 0; i < planten.size(); i++) {
            return planten.get(i);
        }
       return  null;
    }
fatih252 is offline   Met citaat antwoorden
Oud 25 January 2010, 21:12   #5
EdP
PCM Lord
 
EdP's schermafbeelding
 
Geregistreerd: 13 September 2006
Berichten: 4.261
Standaard

Als je even goed kijkt naar de List methode dan zul je hoop ik zien dat dit geen zinvolle methode is. De return() functie geeft een resultaat terug aan de aanroepende kant en de for loop wordt meteen be?indigd. Dit is niet wat je bedoelt.

Het heeft echter geen zin als iemand anders je huiswerk voor je maakt, de bedoeling is dat je er z?lf slimmer van wordt.

Je moet dus even bedenken wat de List methode zou moeten doen om zinvol te zijn en dat omzetten in code.
__________________
An error has occurred. Hit any user to continue
EdP is offline   Met citaat antwoorden
Oud 25 January 2010, 21:26   #6
fatih252
Just Joined!
 
Geregistreerd: 25 December 2009
Berichten: 11
Standaard

Citaat:
Oorspronkelijk geplaatst door EdP Bekijk bericht
Als je even goed kijkt naar de List methode dan zul je hoop ik zien dat dit geen zinvolle methode is. De return() functie geeft een resultaat terug aan de aanroepende kant en de for loop wordt meteen be?indigd. Dit is niet wat je bedoelt.

Het heeft echter geen zin als iemand anders je huiswerk voor je maakt, de bedoeling is dat je er z?lf slimmer van wordt.

Je moet dus even bedenken wat de List methode zou moeten doen om zinvol te zijn en dat omzetten in code.
ik heb dit kunnen maken door void te veranderen en het lukt

maar dit was gegeven dus kan ik niet veranderen
fatih252 is offline   Met citaat antwoorden
Oud 25 January 2010, 22:25   #7
gvanvoor
PCM Lord
 
gvanvoor's schermafbeelding
 
Geregistreerd: 26 January 2006
Locatie: De gezelligste stad ter wereld: Gent
Berichten: 928
Standaard

De oplossing is heel eenvoudig: je moet een List met Plant instanties teruggeven zoals de functie voorschrijft.
Ik veronderstel dat planten een member variabele van een of andere klasse is. Van welke type is die? Als je daarop antwoordt heb je hoogstwaarschijnlijk je oplossing.
__________________
If you want to work on your computer: buy a PC. If you want to do work on your computer: buy a Mac.
gvanvoor is offline   Met citaat antwoorden
Oud 26 January 2010, 02:11   #8
fatih252
Just Joined!
 
Geregistreerd: 25 December 2009
Berichten: 11
Standaard

Citaat:
Oorspronkelijk geplaatst door gvanvoor Bekijk bericht
De oplossing is heel eenvoudig: je moet een List met Plant instanties teruggeven zoals de functie voorschrijft.
Ik veronderstel dat planten een member variabele van een of andere klasse is. Van welke type is die? Als je daarop antwoordt heb je hoogstwaarschijnlijk je oplossing.
Code:
   public List<Plant> planten;
in het klasse Plant is er dan gewoon de naam en de prijs van de plant
fatih252 is offline   Met citaat antwoorden
Oud 26 January 2010, 15:12   #9
fatih252
Just Joined!
 
Geregistreerd: 25 December 2009
Berichten: 11
Standaard

Citaat:
Oorspronkelijk geplaatst door fatih252 Bekijk bericht
Code:
   public List<Plant> planten;
in het klasse Plant is er dan gewoon de naam en de prijs van de plant
GEVONDEN !!

Code:
   public List<Plant> getPlanten() {
        for (Plant pl : planten) {
            System.out.println(pl);
        }
        return Collections.unmodifiableList(planten);
    }
fatih252 is offline   Met citaat antwoorden
Antwoord


Discussietools
Weergave

Regels voor berichten
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Forumnavigatie


Alle tijden zijn GMT +1. Het is nu 14:31.



Powered by vBulletin Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Nederlandse vBulletin-vertaling door Alacer beschikbaar gesteld door Applinet.