PrintStream und super.println()

Status
Nicht offen für weitere Antworten.

thE_29

Top Contributor
Also, ich habe eine Klasse (LogOutStream) die von PrintStream erbt! (extended ist)


So, nun habe ich jede Methode überschrieben, sodaß ich bei jeder Ausgabe, einen Zeitstempel habe!

Jedenfalls, ruft der mir wenn ich sage super.println(string) die normale println Methode von mir auf (sollte er ja nicht tun oder??)


Hier ein Code ausschnitt:: (achja, es ist eine innere Klasse)


Code:
  private class LogOutStream extends PrintStream
  {
    public LogOutStream(OutputStream out)
    {
      super(out);
    }
    
    /**************************************************************************
     * Methode gibt die jetzige Zeit zurück
     * @return String der String
     *************************************************************************/
    private String getNow()
    {
      SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss:S': '");
      fmt.setTimeZone(TimeZone.getTimeZone("CET"));
      return fmt.format(new java.util.Date());
    }
    
    private String getNow(String str)
    {
      StringBuffer strBuf = new StringBuffer(getNow());
      if(str != null)
        strBuf.append(str);
      else
        strBuf.append("null");
      javax.swing.JOptionPane.showMessageDialog(null,strBuf.toString());
      return strBuf.toString();
    }
   //ein paar andere Methoden

    //hier mit boolean
    private String getNow(boolean x)
    {
      StringBuffer strBuf = new StringBuffer(getNow());
      strBuf.append(x);
      return strBuf.toString();
    }
    //noch ein paar Methoden..

    //PROBLEME HATS HIER:::
    public void println(String str)
    {
      super.println(str); //ruft die println Methode von PrintStream auf!!
      //super.println(getNow(str));
    }
    //UND HIER!!
    public void println(boolean x)
    {
      super.println(getNow(x)); //ruft nicht die println Methode von PrintStream auf, sondern die obige!! ABER WARUM???
    }
   //alle anderen Methoden


Verstehe ich die super.Methodenaufrufe falsch oder was hats da??
 

messi

Bekanntes Mitglied
Glaube ich nicht, da mußt du dich täuschen. Woher weißt du, daß zuerst deine Methode aufgerufen wird?
 

thE_29

Top Contributor
weil ich ein joptionpane drinnen hatte!!

Das problem ist aber jenes, ich habe ja jede print/println Methode überschrieben!

Sieht man im Source der Methode println nach, so sieht man, das zuerst die Methode print(String) aufgerufen wird und danach newLine()

Durch den Methodenaufruf print(String) geht er mir in meine (warum auch immer) Methode print(String) hinein und wandelt es nochmals um!

Hab da jetzt ein boolsche Variable eingebaut und bin somit das Problem umgangen!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Fehler in PrintStream#printf ? Allgemeine Java-Themen 2
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
L Super User via Processbuilder (Linux) Allgemeine Java-Themen 3
J Überschriebene Funktion soll nicht die super Funktion aufrufen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
Hacer List<? super E> Allgemeine Java-Themen 10
P Performance: super explizit erwähnen oder weglassen? Allgemeine Java-Themen 5
T Super Klasse Vererbung Problem :/ Allgemeine Java-Themen 10
E Super erzwingen, konzept/pattern gesucht. Allgemeine Java-Themen 8
G super- Methode aufrufen Allgemeine Java-Themen 21
trash super + JTable Allgemeine Java-Themen 7
trash super() mit Variable bestücken Allgemeine Java-Themen 3
G Super- und Subclass Allgemeine Java-Themen 2
S Stellung von super() Allgemeine Java-Themen 4
G super.super Allgemeine Java-Themen 7
conan2 super-super-Konstruktor? Allgemeine Java-Themen 3
P mehrere super klassen Allgemeine Java-Themen 10
thE_29 Foxtrot doch nicht so super. Allgemeine Java-Themen 12
D super-Konstruktor ist nicht super ;) Allgemeine Java-Themen 6
H Super-Konstruktor Allgemeine Java-Themen 7
V Vererbungsproblem --> Implicit super constructor Allgemeine Java-Themen 5
D Java System.out::println Allgemeine Java-Themen 1
S PrintWriter.println() schreibt mehrere Zeilen Allgemeine Java-Themen 19
K print() geht nicht ohne println() Allgemeine Java-Themen 3
V System.out.println an jeder Stelle im Projekt löschen Allgemeine Java-Themen 4
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
D Listener auf System.out.err / System.out.println Allgemeine Java-Themen 5
E System.out.println Allgemeine Java-Themen 5
G System.out.println(is.getClass().getName()); Allgemeine Java-Themen 15
A System.out.println mit Farbe Allgemeine Java-Themen 6
B Console Anwedung mit Rewrite auf ein System.out.println ? Allgemeine Java-Themen 3
N Farbe ändern bei System.out.println Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben