Ich möchte nur Strom ausgeben und schrieb
%Vor%am Anfang und
%Vor%im Hauptteil.
Aber was ich bekam, war so etwas:
%Vor% Wenn ich den Import in import java.util.Date;
ändere funktioniert der Code perfekt, warum?
====================================
Das Problem war, OK, meine Quelldatei war "Date.java", das ist die Ursache.
Nun, es ist alles meine Schuld, ich verwirrte alle herum; P
Und danke an alle unten. Es ist wirklich nett von dir;)
Sie haben wahrscheinlich eine andere "Date" -Klasse irgendwo importiert (oder Sie haben eine Date-Klasse in Ihrem Paket, die nicht importiert werden muss). Mit "import java.util. *" Verwenden Sie das "andere" Datum. In diesem Fall ist es am besten, java.util.Date explizit im Code anzugeben.
Oder besser, versuchen Sie, Ihre Klassen "Date" zu nennen.
Die toString()
Implementierung von java.util.Date
hängt nicht von der Art ab, wie die Klasse importiert wird. Es gibt immer ein schönes formatiertes Datum zurück.
Das toString()
, das Sie sehen, stammt aus einer anderen Klasse.
Der spezifische Import hat Vorrang vor Platzhalterimporten.
in diesem Fall
%Vor% bezieht sich auf other.Date
und nicht java.util.Date
.
Das Seltsame ist das
%Vor% Sollte Ihnen einen Compilerfehler geben, der besagt, dass der Verweis auf Date mehrdeutig ist, weil sowohl other.Date
als auch java.util.Date
übereinstimmen.
Was meinst du mit "funktioniert perfekt"? Die Ausgabe des Ausdrucks eines Date-Objekts ist gleich, unabhängig davon, ob Sie java.util. * Oder java.util.Date importiert haben. Die Ausgabe, die Sie beim Drucken von Objekten erhalten, ist die Darstellung des Objekts mit der Methode toString () der entsprechenden Klasse.