Home / Companies / Stainless / Blog / Post Details
Content Deep Dive

Making Java enums forwards compatible

Blog post from Stainless

Post Details
Company
Date Published
Author
Tomer Aberbach
Word Count
1,145
Company Posts That Month
1
Language
English
Hacker News Points
-
Summary

SDKs often face challenges with client-server version skew, particularly in Java environments like Android apps that users may not update promptly. A Java SDK for a Pet Store API faced such an issue when an API change introduced a new order status, "in_transit," causing older app versions to crash due to the `Enum.valueOf` method's inability to handle unknown enum constants. To mitigate this, a more robust solution was implemented where the SDK stores the raw API value and provides both the raw value and an enum representation, introducing a fallback case for unknown statuses. This design prevents crashes by allowing older app versions to display a generic message for new statuses and ensures that updates seamlessly incorporate new API changes without disrupting existing app functionality.

Trends Found in this Post

No tracked trend matches for this post yet.