Problem med att implementera Stack

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2009-02-09 23:57

Hallå!

Jag är hyfsad ny på Java och tänkte fira detta med att terrorisera forumet med något av en nybörjarfråga. Hur som helst.

Jag använder mig utav "java.util.Stack" för att lagra strängar på hög. Vissa av dessa strängar är i form av siffror och mitt problem inträffar när jag försöker hämta ut en sådan String och omvandla den till en double med hjälp av följande kommando:

double number1 = Double.parseDouble(theStack.pop());

När jag kompilerar detta så dyker detta trevliga felmeddelande upp:

Controller.java:34: parseDouble(java.lang.String) in java.lang.Double cannot be applied to (java.lang.Object)

Jag känner att jag har något slags hum om vad problemet är men ändå inte. Är det någon som kan hjälpa mig på traven?

  • Medlem
  • Göteborg
  • 2009-02-10 00:20

Problemet är att Stack.pop() returnerar typen Object men Double.parseDouble kräver en String så du måste lägga in en typecast typ:

Double.parseDouble((String) theStack.pop());

Sen måste du även tänka på att parseDouble kommer att generera ett exception om strängen inte är ett nummer. Men det kanske du redan gör...

  • Medlem
  • Stockholm
  • 2009-02-10 00:42

Ah. Tack så mycket för tipset. Typecasting är ingenting som jag har stött på ännu. Men nu vet jag i alla fall hur jag skall komma runt detta problem.

Felhanteringen har jag inte ens vågat börja tänka på ännu men tack för tipset där med

1
Bevaka tråden