"Carrier Classes" [IJN]

"Carrier Classes" [IJN]

From Inside Java by David Delabassee

February 23, 2026 · 10 min · Season 3 · Episode 3

About this episode

This episode discusses Project Amber's plans to enhance Java's data handling with carrier classes, as explained by Brian Goetz.

This episode presents Project Amber lead Brian Goetz's recent email "Data Oriented Programming, Beyond Records", wherein he describes plans to improve Java's data handling capabilities by introducing carrier classes, a generalization of records. Like them, carrier classes describe their state through a component list that defines the type's external API: accessors, a constructor, and matching deconstructor - this allows carrier classes to participate in pattern matching and reconstruction. Unlike records, the implementation of this API remains the developer's task although component fields offer a shortcut for the common case where the API does map to a field. Carrier classes don't have to be final (and can hence participate in inheritance) and neither do their fields (so they can be mutable data carriers). The email also mentions carrier interfaces, allowing records to be abstract as well as a relaxation of deconstruction patterns that make them more amenable to evolution of the matched type. This episode also briefly touches on Gavin Bierman's mail to the Project Amber mailing list that announces pattern assignments and constant patterns.

People in this episode

Host: David Delabassee

Topics covered

  • Java
  • data handling
  • carrier classes
  • pattern matching
  • records
  • programming

Keywords

  • carrier classes
  • data oriented programming
  • Java
  • records
  • pattern matching
  • mutable data

Mentioned in this episode

Organizations: Project Amber

More episodes of Inside Java

Explore listener stats, chart rankings, contacts and more on the Inside Java podcast page.