Stack exception?



  • Hallo, ich bräuchte mal eure Hilfe.

    Ich habe vor ein Wort per Tastatur einzugeben, und dieses dann rückwärts in eine Datei zu schreiben. Ist eigentlich kein Problem, aber dank der neuen Java-version bekomme ich einen compiler-fehler, sobald ich die methode "push()" eines Stack aufrufe.

    Der Fehler:

    runApp.java:30: warning: [unchecked] unchecked call to push(E) as a member of the raw type java.util.Stack

    Der Quellcode:

    import java.util.*;
      import java.io.*;
    
    public class runApp
    {
    
      private static adt_file Datei;
      private static cTastatureingabe Eingabe = new cTastatureingabe();
      private static String Eingabetext;
      private static Stack temp = new Stack();
    
     public static void main (String[] args)
     {
    
            Datei = new adt_file();
    
            Eingabetext = Eingabe.readLine();
    
            try
            {
                  temp.push( Eingabetext.charAt(1) );
            }
            catch( Exception e )
            {
                   System.err.print( "Nicht so viele Buchstaben vorhanden" );
            }
    
     }
    
    }
    

    Ich hab schon mittels Try-catch die Ausnahme zu behandeln aber es will nicht klappen. Wäre sehr dankbar wenn ihr mir erläutern könntet wie man die Ausnahme behandelt, sodass es läuft.

    Danke!



  • Rambo256 schrieb:

    aber dank der neuen Java-version bekomme ich einen compiler-fehler

    Ich seh keinen Fehler

    runApp.java:30: warning: [unchecked] unchecked call to push(E) as a member of the raw type java.util.Stack

    sondern nur eine Warnung. Nimm Generics, und die Warnung geht weg.



  • Also sollte ich sie nicht weiter beachten.
    Ok, danke 🙂


  • Mod

    Rambo256 schrieb:

    Also sollte ich sie nicht weiter beachten.
    Ok, danke 🙂

    Die Dinge, die zu Warnungen führen, sollte man durchaus auch in Ordnung bringen. Arbeite dich mal in Generics ein und nutz die dann. 🙂



  • Doch, solltest du. Anstatt einen Stack solltest du einen Stack<Char> benutzen.
    http://java.sun.com/developer/technicalArticles/J2SE/generics/index.html



  • Ja das hatten wir auch schon in der Schule, aber das klappte mit Char komischerweise nicht 😕

    String, Integer usw. klappt 👍



  • Typparameter von Generics in Java sind auf Objekte beschränkt. Das heisst, primitive Datentypen wie int oder char kannst du da nicht reinpacken.
    Statt char also Character nehmen. Dann geht es auch! 🙂



  • Jo, klappt 😉

    Also sollte man in Zukunft nun den Typen des Stacks festlegen.

    Thx euch allen 🙂


Anmelden zum Antworten