<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5" -->

---
title: Java Explores Carrier Classes to Extend Data-Oriented...
description: OpenJDK&#x27;s Project Amber has proposed &quot;carrier classes&quot; and &quot;carrier interfaces&quot; to extend record-like capabilities to more flexible Java class designs. While...
canonical: https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Java Explores Carrier Classes to Extend Data-Oriented Programming Beyond Records | daily.dev
og:description: OpenJDK&#x27;s Project Amber has proposed &quot;carrier classes&quot; and &quot;carrier interfaces&quot; to extend record-like capabilities to more flexible Java class designs. While...
og:url: https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5
og:image: https://api.daily.dev/og/posts/kkijoKcm5.png
og:image:alt: Java Explores Carrier Classes to Extend Data-Oriented Programming Beyond Records
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Java Explores Carrier Classes to Extend Data-Oriented Programming Beyond Records

**[InfoQ](https://daily.dev/sources/infoq)** · 4 min read · 0 upvotes · 0 comments

## Summary

OpenJDK's Project Amber has proposed "carrier classes" and "carrier interfaces" to extend record-like capabilities to more flexible Java class designs. While records (introduced in Java 16) provide concise immutable data modeling with auto-generated methods and pattern matching support, they have strict constraints that limit their use in real-world scenarios requiring derived values, caching, mutability, or inheritance. Carrier classes would allow developers to define a state description similar to records while maintaining the flexibility of traditional classes, enabling patterns like cached computed values and alternative internal representations. The proposal also introduces carrier interfaces for pattern matching across implementations. This exploratory design note aims to reduce boilerplate and support Java's shift toward data-oriented programming, though no concrete syntax or release timeline has been announced.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.infoq.com/news/2026/02/java-beyond-records/>

## Similar posts on daily.dev

- [Episode 47 “Carrier Classes” \[IJN\] – Inside.java](https://daily.dev/posts/episode-47-carrier-classes-ijn-inside-java-kvgbwofxw) · Inside Java · 0 upvotes · 0 comments
- [Episode 52 “Carrier Classes & Discussing Syntax” \[AtA\] – Inside.java](https://daily.dev/posts/episode-52-carrier-classes-discussing-syntax-ata-inside-java-wuj5f7lfk) · Inside Java · 0 upvotes · 0 comments
- [Java future calls for boosts with records, primitives, classes](https://daily.dev/posts/java-future-calls-for-boosts-with-records-primitives-classes-wbkphf9bp) · InfoWorld · 2 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#java](https://daily.dev/tags/java)

[View this post on daily.dev](https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Java Explores Carrier Classes to Extend Data-Oriented Programming Beyond Records","url":"https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5"},"datePublished":"2026-02-04T14:48:05.744Z","dateModified":"2026-02-04T14:48:30.517Z","description":"OpenJDK's Project Amber has proposed \"carrier classes\" and \"carrier interfaces\" to extend record-like capabilities to more flexible Java class designs. While...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9cf84fa2a11d018d6c1a954d6b9dd00d?_a=AQAEulh","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9cf84fa2a11d018d6c1a954d6b9dd00d?_a=AQAEulh","isAccessibleForFree":true,"articleSection":"InfoQ","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"InfoQ","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/afc3bced3e1e4b188dd9127017a60e0c","url":"https://daily.dev/sources/infoq"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/java-explores-carrier-classes-to-extend-data-oriented-programming-beyond-records-kkijokcm5","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,java","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"InfoQ","item":"https://daily.dev/sources/infoq"},{"@type":"ListItem","position":3,"name":"Java Explores Carrier Classes to Extend Data-Oriented Programming Beyond Records"}]}
```

