Cannot find symbol - method valueOf(int)

Status
Niet open voor verdere reacties.

NewbiProgrammer

Gebruiker
Lid geworden
18 okt 2009
Berichten
264
Dit is waarschijnlijk voor de redelijk tot goede programmeurs misschien een beetje een domme vraag en misschien ook al wel voor veel beginners, maar ik kom er even niet uit de foutmelding die ik bij dit(onderstaand) script krijg is: Cannot find symbol - method valueOf(int). Ik weet trouwens dat ik nog een toString in de klasse Kamer moet maken, maar eerst maar is dit probleem uit de wereld helpen. Alle hulp is gewenst!

script van klasse Hotel:

Code:
import java.util.*;
import java.io.*;
import java.net.*;

public class Hotel
{
    Kamer kamertje;  //Maak een object kamer van de klasse kamer aan.
    private ArrayList<Kamer> kamerlijst = new ArrayList<Kamer>();
    private ArrayList<Gast> gastenlijst = new ArrayList<Gast>();

   public void addKamer(int kamernummer, int verdieping, String type) {
       Kamer kamer = new Kamer();
       kamerlijst.add( kamer );
    }
    
    public void addGast(String naam, String adres) {
        Gast gast = new Gast();
        gastenlijst.add( gast );
    }
    
    public void registreer(String naam, int kamernummer) {
    }
    
    public void drukAfKamergegevens(int nummer) {
        int nummertje = 0;
        nummertje = kamertje.valueOf(kamertje.getKamernummer());
        for( Kamer k : kamerlijst ) {
            if( nummer.equalsIgnoreCase( kamertje.getKamernummer() )) {
                System.out.println("Het kamernummer = " + kamertje.toString() );
            }
        } 
    }
}

Script van klasse Kamer:

Code:
public class Kamer
{
    private int kamernummer;
    private int verdieping;
    private int type;

    public Kamer() {
        this.kamernummer = kamernummer;
        this.verdieping = verdieping;
        this.type = type;
    }
    
    public int getKamernummer() {
        return kamernummer;
    }
        
}

Bij voorbaat dank!
- Bram
 
Dit is waarschijnlijk voor de redelijk tot goede programmeurs misschien een beetje een domme vraag
Sorry, ja...;) maar ik heb er al dommere begaan in mijn beginjaren (en nu soms nog steeds:o) dus zit er maar niet mee in.

je doet in de method addKamer(int kamernummer, int verdieping, String type) het volgende

Kamer kamer = new Kamer();

het gedeelte new Kamer() roept vervolgens de constructor op van Kamer

public Kamer() {
this.kamernummer = kamernummer;
this.verdieping = verdieping;
this.type = type;
}

Als je echter kijkt geef je nergens je kamernummer, verdieping en type mee
dus eigenlijk staat er in de klasse Kamer:

private int kamernummer;
private int verdieping;
private int type;

public Kamer() {
this.kamernummer = this.kamernummer;
this.verdieping = this.verdieping;
this.type = this.type;
}

die waarden heb je nog niet geïnitialiseerd (gelukkig want anders kreeg je geen fouten maar altijd dezelfde waarden voor elke kamer)

je moet dus aan je constructor de waarden doorgeven

Kamer kamer = new Kamer(kamernummer, verdieping, type);

en de constructor moet deze waarden kunnen ontvangen dus nu is er een onderscheid tussen de objecten die meegegeven zijn en diegene die in kamer staan en ga je die nu gelijkstellen aan elkaar.

private int kamernummer;
private int verdieping;
private int type;

public Kamer(int kamernummer, int verdieping, String type) {
this.kamernummer = kamernummer;
this.verdieping = verdieping;
this.type = type;
}
 
Bedankt nog 1 probleem

Ten eerste heel erg bedankt voor uw snelle reactie. Ik heb op uw antwoord een beetje vooruit geborduurd en nu stuit ik op nog 1 probleem. als ik mijn programma uitvoer krijg ik een nullpointer exception (code van alle 3 de klassen vermeld ik hieronder)

Bij voorbaat dank.
Bram
Apl:
Code:
public class Apl
{
    public static void main(String[] args) {
    
        Hotel hotel = new Hotel();
        hotel.addKamer(12, "normal", 1);
        hotel.drukAfKamergegevens(12);
    }
}

Hotel:
Code:
import java.util.*;
import java.io.*;
import java.net.*;

public class Hotel
{
    Kamer kamertje;  //Maak een object kamer van de klasse kamer aan.
    private ArrayList<Kamer> kamerlijst = new ArrayList<Kamer>(); //nieuwe arraylist van kamers
    private ArrayList<Gast> gastenlijst = new ArrayList<Gast>(); //nieuwe arraylist van gasten
    private int nummertje = 0;
    
   public void addKamer(int kamernummer, String type, int verdieping ) {  //voeg kamer toe functie.
       Kamer kamer = new Kamer(kamernummer, verdieping, type);
       if( type.equalsIgnoreCase( "luxury" ) || type.equalsIgnoreCase( "honeymoonsuite" ) || type.equalsIgnoreCase( "normal" )) {
       kamerlijst.add( kamer );
    }
    else{ System.out.println("Vul de juiste gegeven in, kies uit Luxury, honeymoonsuite of normal.");
    }
    
    }
    
    public void addGast(String naam, String adres) { //voeg gast toe functie
        Gast gast = new Gast();
        gastenlijst.add( gast );
    }
    
    public void registreer(String naam, int kamernummer) {
    }
    
    public void drukAfKamergegevens(int nummertje) {     //deze methode drukt de kamergegevens af.
        for( Kamer k : kamerlijst ) {
            if( nummertje == ( kamertje.getKamernummer() )) {
                System.out.println( kamertje.toString() );
            }
        } 
    }
}

Kamer:
Code:
public class Kamer
{
    private int kamernummer;
    private int verdieping;
    private String type;

    public Kamer(int kamernummer, int verdieping, String type) {
        this.kamernummer = kamernummer;
        this.verdieping = verdieping;
        this.type = type;
    }
    
    public int getKamernummer() {
        return kamernummer;
    }
    
    public String toString() {
        return ("Kamern nr. " + kamernummer + " op verdieping " + verdieping + ", type: " + type);
    }
}
 
Laatst bewerkt:
Code:
public void drukAfKamergegevens(int nummertje) {     //deze methode drukt de kamergegevens af.
        for( Kamer [COLOR="DarkOrchid"]k[/COLOR] : kamerlijst ) {
            if( nummertje == ( [COLOR="Red"]kamertje[/COLOR].getKamernummer() )) {
                System.out.println( [COLOR="Red"]kamertje[/COLOR].toString() );
            }
        } 
    }
Ik heb de fout d.m.v.kleur aangeduid. Voor de toekomst kan je ook beter wat meer errorgegevens copiëren (want daarin staat bv. welke lijn de exception opwerpt)
 
Bedankt ;) nu ik het zo zie denk ik ook wel van hmm, heb ik dat nou over het hoofd gezien:) maar bedankt voortaan zal ik error log meegeven.

-slotje erop.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan