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 para la clase. Soy bastante nuevo en Java, por lo que no estoy seguro .... puedo incluso hacer cualquiera de esos? Si es así, ¿cómo?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top