48 votes

Le constructeur Date (...) est obsolète. Qu'est-ce que ça veut dire? (Java)

J'essaie de créer une date comme celle-ci:

 date = new Date(year-1900,mon-1,day,hrs,min,sec);
 

et Eclips me donne cet avertissement: "Le constructeur Date (int, int, int, int, int) est obsolète".

Qu'est-ce que cela signifie pour un constructeur d'être obsolète? Que puis-je faire?

47voto

JuanZe Points 4519

Obsolète signifie littéralement désapprouvé, mais une traduction plus exacte serait à la retraite. Obsolète signifie que cette méthode est utilisable, mais vous ne devriez pas l'utiliser. Il va progressivement être progressivement. Il y a une nouvelle méthode pour faire la même chose. Des méthodes obsolètes sont marqués avec un commentaire Javadoc:

/**
 *@deprecated Please now use newMethod()
 *@see newMethod()
 */

Utilisation De L'Application Calendrier.set(an + 1900, mois, jour, heures, minutes) ou GregorianCalendar(an + 1900, mois, jour, heures, minutes).comme suggéré par la documentation de l'API.

18voto

Jon Skeet Points 692016

Cela signifie que vous ne devriez pas l'utiliser dans le nouveau code. C'est typiquement le cas si, il y a maintenant une meilleure façon de parvenir à quelque chose, mais à l'ancienne est conservé pour la compatibilité descendante.

Au lieu de cela, vous pourriez utiliser l' Calendar API, comme le message complet donnent l'espoir de vous - même, ou mieux, de l'OMI), vous pouvez utiliser Joda Time, qui est de loin supérieure de la date/heure API. Si le compilateur message n'est pas de proposer une alternative, c'est toujours intéressant de regarder la Javadoc - qui, dans ce cas suggère d'utiliser Calendar.set(...)

5voto

missingfaktor Points 44003

Cela signifie que vous ne devriez pas l'utiliser dans un nouveau code, généralement parce qu'il est dangereux ou parce qu'une meilleure alternative existe. Les compilateurs avertissent lorsqu'un élément de programme obsolète est utilisé ou remplacé dans du code non obsolète.

Dans votre cas, vous pouvez utiliser la classe java.util.Calendar au lieu de java.util.Date .

4voto

Daniel A. White Points 91889

Obsolète signifie que c'est un héritage ou une ancienne façon de faire quelque chose et qu'il faut l'éviter.

Selon ce document http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html , utilisez Calendar.set(...) .

2voto

Paul McKenzie Points 4841

Comme il est obsolète, cela signifie que vous ne devriez pas vraiment l'utiliser. Vous pouvez plutôt utiliser Calendrier pour générer une date à partir des champs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X