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)
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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"
05. januar 2005 - 22:18
#2
fx. Sol tmp; tmp = printSol(Node nn) hvad en din Node er til:)
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
05. januar 2005 - 22:27
#4
okay men det du var ude efter var det mit forslag eller noget helt andet?
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);
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);
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
Slettet bruger
05. januar 2005 - 22:41
#8
tusinde tak for den hurtige hjælp og her dine vel fortjente point ;O)
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.
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:)
Kurser inden for grundlæggende programmering