Ich versuche ein Date so zu erstellen:
date = new Date(year-1900,mon-1,day,hrs,min,sec);
und Eclips gibt mir folgende Warnung: "Das Konstruktordatum (int, int, int, int, int) ist veraltet".
Was bedeutet es, wenn ein Konstruktor veraltet wird? Was kann ich machen?
Veraltet bedeutet wörtlich abgelehnt , aber eine genauere Übersetzung wäre im Ruhestand . Veraltet bedeutet, dass diese Methode noch verwendet werden kann, Sie sollten sie jedoch nicht verwenden. Es wird schrittweise auslaufen. Es gibt eine neue Methode, um dasselbe zu tun . Veraltete Methoden sind mit einem speziellen Javadoc-Kommentar gekennzeichnet:
/**
*@deprecated Please now use newMethod()
*@see newMethod()
*/
Verwenden Sie :
Calendar.set(year + 1900, month, date, hrs, min)
oder
GregorianCalendar(year + 1900, month, date, hrs, min)
.Wie vorgeschlagen durch die API-Dokumentation .
Es bedeutet, dass Sie es nicht in neuem Code verwenden sollten. Dies ist normalerweise der Fall, wenn es jetzt einen besseren Weg gibt, etwas zu erreichen, der alte Weg jedoch aus Gründen der Abwärtskompatibilität beibehalten wird.
Stattdessen können Sie könnte die Calendar
-API verwenden, wie die vollständige Nachricht Ihnen hoffentlich nahe legt - oder (besser IMO) können Sie Joda Time oder das Java.time
-Paket in Java 8 verwenden (siehe Tutorial ). Beide sind weit übergeordnete Datums-/Zeit-APIs. zum
Wenn es sich um veraltete APIs handelt und die Compilernachricht nicht eine Alternative vorschlägt, lohnt es sich immer, sich den Javadoc anzusehen - was in diesem Fall die Verwendung von Calendar.set(...)
vorschlägt.
Das bedeutet, dass Sie es normalerweise nicht in neuem Code verwenden sollten, weil es gefährlich ist oder weil es eine bessere Alternative gibt. Compiler warnen, wenn ein veraltetes Programmelement in nicht veraltetem Code verwendet oder überschrieben wird.
In Ihrem Fall können Sie Java.util.Calendar
class anstelle von Java.util.Date
verwenden.
Übrigens werden diese alten Klassen in Java 8 und später durch das neue Java.time-Paket ( Tutorial ) ersetzt. Inspiriert von Joda-Time , definiert durch JSR 310 und erweitert um das ThreeTen Extra - Projekt. Die alten Klassen bleiben erhalten und Sie können sie weiterhin verwenden (wobei sie ihre veralteten Teile vermeiden), Sie werden jedoch aufgefordert, zu den neuen Klassen überzugehen.
Veraltet bedeutet, dass dies ein Erbe oder eine alte Methode ist, etwas zu tun, und es sollte vermieden werden.
Gemäß diesem Dokument http://Java.Sun.com/j2se/1.4.2/docs/api/Java/util/Date.html verwenden Sie Calendar.set(...)
.
Hier finden Sie ein Code-Snippet, das Sie bei der Migration Ihres Codes unterstützt. Beide Drucke sind gleich.
import Java.util.Calendar;
import Java.util.Date;
public class Tinker {
public static void main(String[] args) {
int Y = 2015; // Year 2015
int M = 11; // 0..11 -- December
int D = 15; // 15th
int H = 16; // 4:00 PM
int MN = 28; // 4:28 PM
int S = 41; // 4:28:41
Date d = new Date(Y-1900,M,D,H,MN,S);
System.out.println(d);
Calendar c = Calendar.getInstance();
c.set(Y, M, D, H, MN, S);
d = c.getTime();
System.out.println(d);
}
}
Die Ausgabe:
Tue Dec 15 16:28:41 CST 2015
Tue Dec 15 16:28:41 CST 2015
Da es veraltet ist, sollten Sie es nicht wirklich verwenden. Sie können den Kalender verwenden, um stattdessen ein Datum aus Feldern zu generieren.
veraltet bedeutet, dass von der Verwendung dieses Konstruktors abgeraten wird und in zukünftigen Versionen von Java möglicherweise entfernt wird. Verwenden Sie die Kalender-API.
Veraltet bedeutet im Allgemeinen, dass Sie von der Verwendung der Funktion abgeraten sind.
Aus irgendeinem Grund wurde entschieden, dass Java ohne Java besser geeignet wäre (weil es eine bessere Alternative gibt, und Sie sollten stattdessen diese verwenden), so dass () aus einer zukünftigen Version von entfernt wird Java. Deprecation ist im Grunde eine Warnung, dass "dies wahrscheinlich in der Zukunft entfernt werden wird, obwohl wir es ein bisschen länger behalten, um Ihnen die Möglichkeit zu geben, es zuerst aus Ihrem Code zu entfernen"
Veraltet bedeutet Die Kern-API und andere Java-Bibliotheken sind nicht davon abhängig und es heißt, Sie haben bessere Wege.