Avatar billede Slettet bruger
05. januar 2005 - 22:12 Der er 9 kommentarer og
1 løsning

Retur typen

Hej eksperter,

Jeg har denne lille funktion:

private static void printSol(Node nn){

    return new Sol(P,C);
}

Sol er en klasse / constructor i klassen Sol....

men hvad skal min retur type være når jeg vil gøre som ovenfor ?

håber nogen kan hjælpe mig ud her ;O)
Avatar billede kalp Novice
05. januar 2005 - 22:15 #1
hvad bruger du parameteren til i den metoder du viser os?

retur typen skal være er typen "Sol"
Avatar billede kalp Novice
05. januar 2005 - 22:18 #2
fx.

Sol tmp;

tmp = printSol(Node nn)

hvad en din Node er til:)
Avatar billede Slettet bruger
05. januar 2005 - 22:20 #3
Jeg bruger værdierne til at sætte til nogle faste variable som jeg skal bruge til senere udregninger
Avatar billede kalp Novice
05. januar 2005 - 22:27 #4
okay men det du var ude efter var det mit forslag eller noget helt andet?
Avatar billede Slettet bruger
05. januar 2005 - 22:30 #5
jo det var helt korrekt, men har du tid til en lille mere ?

jeg får en fejl på P "The local variable P may not have been initialized"

i den samlede kode af denne funktion:

        Punkt P;
        Color C;
       
        if(nn.getNodeType()!=Node.ELEMENT_NODE)
            throw new XMLParseError("Kunne ikke omdanne til Element");

        NamedNodeMap nnm=nn.getAttributes();
        String id=nnm.getNamedItem("id").getNodeValue();
   
        NodeList nl=((Element)nn).getElementsByTagName("farve");
        C = printColorFromNNM(nl.item(0).getAttributes());
   
        nl=((Element)nn).getElementsByTagName("punkt");
        NamedNodeMap punktnnm=nl.item(0).getAttributes();
        if(punktnnm.getNamedItem("id").getNodeValue().equals("position")){
            P = printPunktFromNNM(punktnnm);
        }
        return new Sol(P,C);
Avatar billede Slettet bruger
05. januar 2005 - 22:31 #6
hele funktionen ;O)

    private static Sol printSol(Node nn) throws XMLParseError{//læser og skriver en sol givet en xml-knude
        Punkt P;
        Color C;
       
        if(nn.getNodeType()!=Node.ELEMENT_NODE)
            throw new XMLParseError("Kunne ikke omdanne til Element");

        NamedNodeMap nnm=nn.getAttributes();
        String id=nnm.getNamedItem("id").getNodeValue();
   
        NodeList nl=((Element)nn).getElementsByTagName("farve");
        C = printColorFromNNM(nl.item(0).getAttributes());
   
        nl=((Element)nn).getElementsByTagName("punkt");
        NamedNodeMap punktnnm=nl.item(0).getAttributes();
        if(punktnnm.getNamedItem("id").getNodeValue().equals("position")){
            P = printPunktFromNNM(punktnnm);
        }
        return new Sol(P,C);
Avatar billede kalp Novice
05. januar 2005 - 22:33 #7
Det ser ud til at være fordi du laver en if sætning.

if(punktnnm.getNamedItem("id").getNodeValue().equals("position")){
            P = printPunktFromNNM(punktnnm);

og den bliver ikke kørt åbenbart.. så P bliver aldrig initialiseret.. så du må enten lave en else sætning eller sætte p = noget øverst

Punkt P = ?;

prøv og se om ikke det skulle være det eller må jeg lige kigge din kode ordenligt igennem.. skimmede kun hehe
Avatar billede Slettet bruger
05. januar 2005 - 22:41 #8
tusinde tak for den hurtige hjælp og her dine vel fortjente point ;O)
Avatar billede erikjacobsen Ekspert
05. januar 2005 - 22:41 #9
Det er ikke fordi den ikke bliver kørt, den if-sætning. Java analyserer metoden
for at se om P med sikkerhed får en værdi inden den bliver brugt. En if-sætning
betyder jo at den ved kørsel måske udføres, måske ikke, og derfor er det ikke
sikkert at P får en værdi der.

Hvis det ellers passer til problemet, kan man blot sætte P til null, allerøverst i metoden.
Avatar billede kalp Novice
05. januar 2005 - 22:45 #10
Thanks for point:)

og til mit forsvar så kiggede jeg ikke rigtig på koden men gik mere efter hvad fejlmeddelelsen lød på:) men ramte da rigtigt hvad angå løsningsforslag:)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester