Question

Je voudrais faire une méthode appelée « isBetween » retourner un booléen, voir si une date de GregorianCalendar se situe entre deux autres. Sinon, je voudrais simplement définir les opérateurs de pour la classe. Je suis assez nouveau pour Java, donc je ne suis pas sûr .... je peux faire encore l'un de ces? Si oui, comment?

Était-ce utile?

La solution

Java ne supporte pas monkeypatching ou la surcharge des opérateurs, mais ne hésitez pas à sous-classe GregorianCalendar et ajouter toutes les méthodes dont vous avez besoin.

Mais alors, avez-vous vraiment besoin d'une nouvelle méthode pour faire cal.after(startCal) && cal.before(endCal)?

Autres conseils

Non, vous ne pouvez pas ajouter la méthode des classes pré-existantes et vous ne pouvez pas surcharger l'opérateur soit en Java.

Comme alternative, vous pouvez fournir une méthode de service statique dans votre propre classe par exemple.

Je vous conseille contre étendre la classe - vous n'êtes pas l'ajout d'un comportement qui est spécifique aux instances d'une classe particulière, vous exprimez la logique qui est applicable pour tout GregorianCalendar (ou peut-être tout calendrier du tout).

Comme le dit Joachim, une méthode statique dans une classe utilitaire est le chemin à parcourir - et si Java gagne toujours des méthodes d'extension comme par C # (je sais qu'ils ont été suggérées pour Java 7, mais je penser ils sont hors pour le moment), vous pouvez les modifier à ce moment-là.

Oh, et utiliser Joda temps de toute façon:)

Vous devriez essayer de l'étendre:

class MyGregorianCalendar extends GregorianCalendar
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top