Jakarta Commons Lang-Projekt mit zentralisierten Utility-Funktionen

Enum

Als Java eingeführt wurde, betrachtete man es allgemein als neue Version von C. Während klügere Köpfe (zu denen ich nicht zählte, da ich zu jener Zeit noch einen altersschwachen Amiga besaß) vielleicht sofort erkannten, dass Java nur wie C aussah, jedoch die grundlegenden Features eines völlig anderen Sprachensatzes enthielt, hielten sich viele Benutzer damit auf, festzustellen, welche Teile aus C fehlten und weshalb dies wohl so sei. Einer der hierbei am häufigsten genannten Punkte war der Enum-Befehl aus C. Dieser wurde traditionell zur Implementierung von Code-Sequenzen wie der folgenden verwendet:

Auf diese Weise konnten dem Montag automatisch der Wert 0, dem Dienstag der Wert 1 usw. zugewiesen werden. Der Compiler konnte so die für den Tag verwendete Variable überwachen und den Programmierer vor unvorhergesehen Fehlern bewahren.

Obwohl die Tatsache, dass eine solche Funktion in Java fehlt, gewisse Nachteile bedeutet – so hat Java keine echte Konstante, die über RMI oder bei mehrfachem ClassLoading überlebt – bleibt die Lang Enum-Klasse auch über RMI bestehen, solange man die Vergleichsmethode == nicht verwendet. Ein Beispiel für einen solchen Enumerator zur Erfassung des Wochentags unter Verwendung von Lang Enum finden Sie in Listing A.

Dieser ist natürlich erheblich länger als seine Entsprechung in C, doch dies ist der Preis für die in dieser Sprache fehlende Syntax.

Builder

Das letzte Unterpaket aus dem org.apache.commons.lang-Paket, das ich hier vorstelle, ist das Builder-Paket. Mit den in diesem Paket enthaltenen Klassen wird das Erstellen von Standard-Methoden wie equals, toString, hashCode und compareTo einfacher und sicherer. Die Builder für hashCode und equals folgen beide den Prinzipien, die Joshua Bloch in seinem Klassiker „Effective Java: Programming Language Guide“ darstellte. Um beispielsweise eine gute hashCode-Methode zu schreiben, können Sie entweder lange nachgrübeln oder einfach Folgendes tun:

Und so schreiben Sie eine einfache equals-Methode:

Auch wenn der Lernaufwand für diese Builder-Klassen etwas höher ist als der für eine simple statische Funktion, liegen die Vorteile hinsichtlich einer einfachen Entwicklung auf der Hand.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Neue Backdoor: Bedrohung durch Malvertising-Kampagne mit MadMxShell

Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.

5 Tagen ago

BSI-Studie: Wie KI die Bedrohungslandschaft verändert

Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.

5 Tagen ago

KI-Wandel: Welche Berufe sich am stärksten verändern

Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…

5 Tagen ago

Wie ein Unternehmen, das Sie noch nicht kennen, eine Revolution in der Cloud-Speicherung anführt

Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…

6 Tagen ago

Dirty Stream: Microsoft entdeckt neuartige Angriffe auf Android-Apps

Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.

6 Tagen ago

Apple meldet Umsatz- und Gewinnrückgang im zweiten Fiskalquartal

iPhones und iPads belasten das Ergebnis. Außerdem schwächelt Apple im gesamten asiatischen Raum inklusive China…

6 Tagen ago