Help My LocalDate Isn't Flattened
12 days ago
- #Java
- #Serialization
- #Project Valhalla
- Project Valhalla aims to flatten objects in the Java virtual machine for better performance.
- Value classes and records in Valhalla can be represented as compact values instead of heap objects.
- LocalDate objects were optimized for flattening in an early access build but reverted due to serialization issues.
- Serialization compatibility issues arose when changing LocalDate's internal fields from short to byte.
- The writeReplace mechanism in LocalDate ensures stable serialization but fails with class object serialization.
- A proposed fix involves setting serialPersistentFields to an empty array to allow field changes without breaking serialization.
- Best practices for serializable classes include designing a stable wire format and avoiding default serialization.