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

Top 5
Die besten PCtipp-Artikel aus der Kalenderwoche 15
In der Kalenderwoche 15 vom 6. bis zum 12. April 2026 standen die Artikel «Ist Biometrie sicher? » und «Wi-Fi fürs ganze Haus» ganz oben in der Gunst unserer Leserschaft.
2 Minuten
17. Apr 2026
Heimisches Biomethan kann die Schweiz unabhängiger machen
Durch die intelligente Nutzung von Biomasse könnte die Schweiz einen substanziellen Anteil des eigenen Gasbedarfs selbst decken. Das geht aus einer Studie unter Leitung des Paul Scherrer Instituts PSI hervor.
5 Minuten
16. Apr 2026
iPhone Wecker zu jeder Zeit und auch auf der Watch
Für tägliche Routinen ist der iPhone-Wecker ideal, da er auch auf der Apple Watch synchronisiert wird. So übertragen Sie den Alarm auf die Watch am Handgelenk.
2 Minuten
17. Apr 2026

Das könnte Sie auch interessieren

Neue Batterie erhöht Reichweite von E-Autos erheblich
Ein neues Batteriedesign verlängert die Reichweite von Elektrofahrzeugen und die Lebensdauer tragbarer Elektronikgeräte, weil es die Kapazität des Speichers entscheidend vergrössert. 
3 Minuten
30. Mär 2026
Neue PCtipp Website
Seit Montagnachmittag ist die neue PCtipp Website online. Sie ist schnell, schlank und auf allen Geräten abrufbar.
2 Minuten
23. 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
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare