Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

'Other'-Wert in ENUMs: Ein Aufruf zur Vorsicht

Im API-Design kann die Einführung eines 'Other'-Wertes in ENUMs zu unerwarteten Problemen führen. Ein Blog-Beitrag von Raymond Chen beleuchtet das Dilemma und bietet Alternativen für eine bessere Handhabung.
© (Quelle: EMGenie)

Ein Fallstrick, über die viele Entwickler bei der Arbeit mit Enumerationen (ENUMs) stolpern, ist die Einführung eines 'Other'-Wertes. Ein Beitrag im Blog "The Old New Thing" von Raymond Chen macht auf diese Problematik aufmerksam und zeigt auf, wie ein solcher Wert einer Anwendung schaden kann.

Nehmen wir die folgende ENUM-Deklaration:

enum class WidgetFlavor {   Vanilla,   Chocolate,   Strawberry,   Other }; 

Hierbei wird angenommen, dass es drei Geschmacksrichtungen von Widgets gibt, aber möglicherweise in Zukunft weitere hinzukommen werden. Um auf diese Möglichkeit zu reagieren, wird ein 'Other'-Wert eingeführt, um spätere Erweiterungen zu berücksichtigen. Doch dieser Ansatz birgt erhebliche Risiken.

Stellen wir uns vor, dass in zukünftigen Versionen der ENUM ein neuer Geschmack namens 'Mint' hinzugefügt wird:

enum class WidgetFlavor {   Vanilla,   Chocolate,   Strawberry,   Other,   Mint }; 

Ein Benutzer des API, der die Funktion GetWidgetFlavor aufruft und ein Mint-Widget erhält, sieht sich nun einem Dilemma gegenüber. Soll der Rückgabewert 'Mint' lauten oder wird dies die Kompatibilität mit bereits existierendem Code gefährden, der 'Other' erwartet?

Die Problematik besteht darin, dass der Begriff 'Other' impliziert, dass die ENUM vollständig ist. Der Rückgabewert 'Other' könnte für ältere Versionen des Codes als unerwartet und verwirrend angesehen werden. Chen empfiehlt daher, auf die Verwendung von 'Other' zu verzichten und stattdessen festzulegen, dass Werte, die nicht erkannt werden, als 'Other' betrachtet werden sollten.

Ein besserer Ansatz wäre es, die ENUM offen zu lassen und zu dokumentieren, dass der neue Wert 'Mint' zu einer separat definierten Kategorie zählt. Auf diese Weise können neue Implementierungen 'Mint' korrekt zurückgeben, während älterer Code die neuen Werte in einer selbst definierten 'Other'-Kategorie belässt.

Entwickler sollten also bei der Gestaltung ihrer APIs Vorsicht walten lassen.

Vorsicht bei der Implementierung von APIs mit other-Werten in Enums

Kommentare

Softwareentwicklung
Anzeige
Anzeige

Neueste Beiträge

«ZüriA»
Stadt Zürich lanciert eigene KI-Assistenz
Seit Kurzem steht den Mitarbeitenden der Stadt Zürich mit «ZüriA» eine KI-Assistenz zur Verfügung, die die Bearbeitung von internen, vertraulichen und streng vertraulichen Informationen ermöglicht.
2 Minuten
18. Mär 2026
Sunrise passt Roaming-Optionen an
Sunrise packt neu mehr Leistung in die Roaming-Optionen für beliebte Reiseziele in Europa, Nordamerika und vielen weiteren Ländern – zu gleichen oder tieferen Preisen.
3 Minuten
23. Mär 2026
Apple-Ecke
iCloud-Backups: wenig Aufwand, viel Wirkung
Apples iCloud ist kein Ersatz für klassische Backups. Doch mit dem richtigen Ansatz wird sie zur wichtigsten Verteidigungslinie gegen Datenverlust. Mit den folgenden Einstellungen werden wasserdichte Sicherheitskopien bei minimalem Aufwand realisiert.
6 Minuten
19. Mär 2026

Das könnte Sie auch interessieren

Künstliche Intelligenz
KI-Tools verhindern das Lernen am Arbeitsplatz
Berufseinsteiger erledigen an ihrem ersten Arbeitsplatz wegen Künstlicher Intelligenz (KI) immer weniger Routineaufgaben und erwerben auch nicht mehr nebenbei spezielle Qualifikationen durch die Zusammenarbeit mit erfahrenen Kollegen.
3 Minuten
Smartphone
Vivo bringt Zeiss-Kameras in die Mittelklasse
Vivo hat zwei Smartphones der neuen V70-Serie gezeigt, die auch nach Deutschland und in die Schweiz kommen könnten. Sie sollen mit Zeiss-Technologie bei den Kameras punkten.
2 Minuten
24. Feb 2026
Forschung
Strahlenresistente Elektronik für das All kreiert
Laut Forschern der Fudan-Universität eignen sich Schichten aus Molybdändisulfid für strahlungsbeständige Elektronik in Raumfahrzeugen.
3 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare