Was ist der Unterschied zwischen import java.util.*; und importieren Sie java.util.Datum; ?
Ich nur ausgeben wollen, und ich schrieb
import java.util.*;
am Anfang, und
System.out.println(new Date());
in der Haupt-Teil.
Aber was ich bekam, war etwas wie:
Date@124bbbf
Wenn ich die importieren, um import java.util.Date;
der code funktioniert perfekt, warum?
====================================
War das problem, OK, meine Quelle, meine Datei war "Date.java", das ist die Ursache.
Gut, es ist alles meine Schuld, ich verwirrt doch alle ;P
Und vielen Dank an alle unten. Es ist wirklich NETT VON DIR 😉
- In der ersten Beispiel, haben Sie vielleicht importieren Sie etwas anderes? E. g. java.sql.Datum?
- Sie haben könnte, andere Einfuhr - lassen Sie uns sehen einige kompilierbare code zeigt dies
- Siehe auch: stackoverflow.com/questions/147454/..., stackoverflow.com/questions/187453/..., stackoverflow.com/questions/585268/..., stackoverflow.com/questions/1553909/...
- Voting bis da mal ein gutes gegen-Beispiel ist so hilfreich wie nichts. 🙂
- thx Euch allen @Mark ich mit dem Namen der Klasse "Datum" und das ist das problem @finnw thx für die Angebotserstellung @mtruesdell schade, ich kann nicht an der Abstimmung noch.. ein sehr newbie bin ich hier
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie wahrscheinlich einige andere "Date" - Klasse importiert irgendwo (oder Sie haben ein Date-Klasse im Paket, die müssen nicht importiert werden). Mit "import java.util.*" Sie sind mit dem "anderen" - Datum. In diesem Fall ist es am besten, um java explizit angeben.util.Datum in den code.
Oder besser, versuchen zu vermeiden, benennen Sie Ihre Klassen "Datum".
Den
toString()
Umsetzung vonjava.util.Date
hängt nicht von der Art, die Klasse importiert wird. Es gibt immer eine schön formatierte Datum.Den
toString()
Sie sehen, kommt aus einer anderen Klasse.Bestimmte importieren, haben Vorrang vor wildcard-imports.
in diesem Fall
bezieht sich auf
other.Date
und nichtjava.util.Date
.Das seltsame ist, dass
Sollten Sie eine compiler-Fehlermeldung, die besagt, dass die Referenz, Datum ist zweideutig, denn beide
other.Date
undjava.util.Date
entspricht.Einfuhren alles in java.util einschließlich der Date-Klasse.
nur die Einfuhren der Date-Klasse.
Tun, entweder von diesen, könnte keinen Unterschied machen.
Ihrem Programm funktionieren sollte genau das gleiche mit entweder import java.util.*; oder import java.util.Datum;. Es muss etwas sein, sonst hast du in zwischen.
Was meinst du mit "funktioniert einwandfrei"? Die Ausgabe von drucken ein Datum-Objekt ist das gleiche, egal ob Sie importiert java.util.* oder java.util.Datum. Die Ausgabe, die Sie bekommen beim drucken von Objekten wird die Darstellung des Objekts, indem die toString () - Methode der entsprechenden Klasse.