¿Hay una manera de añadir métodos a GregorianCalendar en Java?
-
18-09-2019 - |
Pregunta
Me gustaría hacer un método llamado "isBetween" devolver un valor lógico, viendo si una fecha cae GregorianCalendar entre otros dos. Por otra parte, me gustaría simplemente definir los operadores de
Solución
Java no soporta monkeypatching o la sobrecarga de operadores, pero no dude en subclase GregorianCalendar
y añadir cualquier método que necesita.
Pero entonces, lo que realmente necesita un nuevo método para hacer cal.after(startCal) && cal.before(endCal)
?
Otros consejos
No, no se puede agregar clases de método de pre-existentes y no se puede hacer la sobrecarga de operadores, ya sea en Java.
Como alternativa, se puede proporcionar un método de utilidad estática de su propia clase, por ejemplo.
Yo aconsejaría contra extendiendo la clase - que no va a añadir cualquier comportamiento que es específico a instancias de una clase en particular, usted está expresando la lógica que es aplicable para cualquier GregorianCalendar
(o, posiblemente, cualquier calendario en absoluto).
Como dice Joachim, un método estático en una clase de utilidad es el camino a seguir - y si Java siempre gana los métodos de extensión de acuerdo con C # (sé que se sugirieron para Java 7, pero I pensar que están fuera por el momento) se pueden modificar en ese punto.
Ah, y usar Tiempo Joda todos modos:)
Usted debe tratar de extenderlo:
class MyGregorianCalendar extends GregorianCalendar