Frage

Ich möchte eine Methode, um als „isBetween“ eine boolean Rückkehr zu sehen, ob ein GregorianCalendar Datum zwischen zwei anderen fällt. Alternativ würde Ich mag nur Betreiber definieren für die Klasse. Ich bin ziemlich neu in Java, so dass ich bin mir nicht sicher .... kann ich auch eine der beiden tun? Wenn ja, wie?

War es hilfreich?

Lösung

Java unterstützt keine monkeypatching oder Betreiber Überlastung, aber das Gefühl frei GregorianCalendar Unterklasse und hinzufügen, was Methoden, die Sie benötigen.

Aber dann brauchen Sie wirklich eine neue Methode cal.after(startCal) && cal.before(endCal) zu tun?

Andere Tipps

Nein, können Sie nicht Methode, um bereits bestehende Klassen hinzufügen und Sie können nicht tun Operator entweder in Java zu überlasten.

Als Alternative können Sie eine statische Hilfsmethode in Ihrer eigenen Klasse zum Beispiel bieten könnten.

Ich würde Ihnen raten gegen die Klasse erweitern - Sie hinzufügen kein Verhalten, das auf Instanzen einer bestimmten Klasse spezifisch ist, sind Sie Logik zum Ausdruck, die für jede GregorianCalendar anwendbar ist (oder möglicherweise irgendein Kalender überhaupt).

Wie Joachim sagt, eine statische Methode in einer Utility-Klasse ist der Weg zu gehen - und wenn Java immer gewinnt Erweiterungsmethoden wie pro C # (ich weiß, dass sie für Java 7 vorgeschlagen wurden, aber ich denkt sie sind im Moment out) Sie sie an diesem Punkt ändern können.

Oh, und verwenden Sie Joda Zeit trotzdem:)

Sie sollten versuchen, es zu erweitern:

class MyGregorianCalendar extends GregorianCalendar
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top