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 :
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 p>
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.
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 P>
calendrier code> n'a pas de constructeurs publics et fournit la méthode
calendar.getinstance () code> comme moyen de construire des instances de la classe. Si vous devez paramétrer la construction d'un objet code> calendrier code>, pourquoi pas simplement écrire une méthode d'assistance sur la classe?
Vérifiez l'API, le calendrier est abstrait
joda-time.sourceforge.net