Konvertieren von Objekt zu Int

  • Hi

    ich will Elemente aus einem Stack miteinander Addieren, doch leider scheitert es daran das ich auf die Elemente welche ich mit pop vom Stack hole keine Additions Operation ausueben kann. Gut pop liefert mir ein Objekt zurueck, aber warum kann ich das nicht einfach zu int casten?

    //Stack1 ... stack
    Int izahl=(int)stack.pop();

    liefert den Fehler:
    Semantic Error: An expression of type "java.lang.Object" cannot be cast into type "int".


    Danke fuer jede Antwort!

  • Weil du nicht jedem Objekt einen Integer-Wert zuweisen kannst. Wichtig für eine Lösung ist es jedenfalls zu wissen, welche Objekte du auf dem Stack gespeichert hast. Wenn du nur Zahlen am Stack speichern willst würde ich dir empfehlen, mit der Integer-Wrapperklasse zu arbeiten. Diese Klasse kapselt atomare int-Werte in ein Objekt, das du z.B. auf einen Stack schreiben kannst. Über intValue() kannst du auf den atomaren Wert zugreifen.

    Beispiel:

    Code
    Integer eins = new Integer(1);
    Integer zwei = new Integer(2);
    
    
    stack.push(eins);
    stack.push(zwei);
    
    
    Integer a = (Integer)stack.pop();
    int a_int = a.intValue();


    Übrigens: unter Java 1.5 kannst du dem Stack sagen, welchen Datentyp er aufnehmen soll (Stichwort Generizität). Siehe die API des neuen Stack unter Java 1.5 im Gegensatz zum alten Stack unter Java 1.4.2.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!