8
votes

Initialiser un calendrier dans un constructeur

Si je fais cela:

Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, 1999);
date.set(Calendar.MONTH, 7);
date.set(Calendar.DAY_OF_MONTH, 26);


3 Réponses :


21
votes

Calendrier est une classe abstraite, vous ne pouvez donc pas en créer une instance. Lorsque vous appelez Getinstance, cela renvoie réellement une nouvelle instance GregorianCalendar. C'est donc la même chose que votre premier exemple.

Donc, je suppose que la question est, pourquoi voulez-vous appeler le nouveau calendrier au lieu de nouveau Gregoriancalendar? Si c'est juste pour que vous puissiez masquer la mise en œuvre que vous utilisez, je ferais simplement ce que vous avez déjà fait pour initialiser un calendrier. Ou créez une seule méthode qui prend les mêmes paramètres et masque les appels vers la classe de calendrier, par exemple xxx


7 commentaires

Le calendrier n'est pas abstrait, il n'a que de constructeurs publics.


docs.oracle.com/javase/7/docs/ API / Java / Util / Calendar.html Découvrez l'API, je pense que vous trouverez qu'il est abstrait


La classe de calendrier est une classe abstraite qui fournit des méthodes de conversion entre un instant spécifique dans le temps et un ensemble de champs de calendrier tels que l'année, le mois, le jour_of_month, l'heure, etc., ainsi que pour la manipulation des champs de calendrier, tels que la date à laquelle de la semaine prochaine.


En effet, en Java 7 c'est. Je regarde les plus âgés de Java Docs. Cherche à avoir été fait abstrait en Java 7.


Nope, ça a toujours été abstrait


pages.cs.wisc.edu/~ CS368-1 / JavaTutoriel / JDK1.2 / API / Index.htm L Voici Java 1.2 Doc qui le montre comme abstrait


Ok alors, je suis corrigé. On dirait que nous avons monté la même solution cependant.



0
votes

Créez votre classe personnalisée avec constructeur approprié et utilisez la classe de calendrier Java en ce sens pour initialiser votre propre objet de classe de calendrier


0 commentaires

-1
votes

calendrier n'a pas de constructeurs publics et fournit la méthode calendar.getinstance () comme moyen de construire des instances de la classe. Si vous devez paramétrer la construction d'un objet calendrier , pourquoi pas simplement écrire une méthode d'assistance sur la classe? XXX


1 commentaires

Vérifiez l'API, le calendrier est abstrait